在整个应用程序中引用 IdentityUser primary 是最佳实践吗?
Is it best practice to reference the IdentityUser primary throughout the application?
我是 .NET Core MVC / Web 的新手API,我目前正在实现一个多用户、多角色系统。
我扩展的默认 IdentityUser 有一个 Guid 主键(我知道我可以覆盖它)。
在所有其他系统中,我指向用户的自动递增 PK int 值以引用属于特定用户的数据。
现在的问题是,这是否是 Microsoft 打算将此主键用于 IdentityUser,以及当我在所有 table 中引用此(大)Guid 时是否可以,或者我可以创建一个单独的用户 table 并创建一个(IdentityUser.Id,UserId 自动递增)分隔 table 并引用此 UserId int。甚至我还不知道的另一种解决方案。
特别问一下,因为我看了很多遍这个Guid应该是保密的,但是当我开始到处引用Guid时,泄漏的可能性就增加了。
数据库是您存储所有秘密的地方,因此,如果您的 GUID 被用作其他表中的外键,您不必担心,因为它们仍在您的数据库中。也许你读到的关于保密的内容意味着你不应该将它暴露给客户端应用程序,尽管我仍然不同意。因为 GUID 的一个优点是即使用户获得了一个 GUID,(与自动递增的整数不同)他也无法猜测其他的。
我是 .NET Core MVC / Web 的新手API,我目前正在实现一个多用户、多角色系统。
我扩展的默认 IdentityUser 有一个 Guid 主键(我知道我可以覆盖它)。
在所有其他系统中,我指向用户的自动递增 PK int 值以引用属于特定用户的数据。
现在的问题是,这是否是 Microsoft 打算将此主键用于 IdentityUser,以及当我在所有 table 中引用此(大)Guid 时是否可以,或者我可以创建一个单独的用户 table 并创建一个(IdentityUser.Id,UserId 自动递增)分隔 table 并引用此 UserId int。甚至我还不知道的另一种解决方案。
特别问一下,因为我看了很多遍这个Guid应该是保密的,但是当我开始到处引用Guid时,泄漏的可能性就增加了。
数据库是您存储所有秘密的地方,因此,如果您的 GUID 被用作其他表中的外键,您不必担心,因为它们仍在您的数据库中。也许你读到的关于保密的内容意味着你不应该将它暴露给客户端应用程序,尽管我仍然不同意。因为 GUID 的一个优点是即使用户获得了一个 GUID,(与自动递增的整数不同)他也无法猜测其他的。