c# - ASP.NET Core 上的身份 AspNetUsers

标签 c# asp.net-identity

我刚刚开始使用身份,并且对 AspNetUsers 主键有概念上的疑问。默认 PK 是 nvarchar(450),这应该可以识别系统上的此帐户。所以我的疑问是,在现实世界的应用程序中,这个 PK 被用作其他系统表中的 FK 来识别帐户?或者正常的做法是让某种中间用户的 PK 为 int,FK 为 nvarchar 值?另一件事,关于在其他表中将 nvarchar 作为 FK 的搜索性能?

最佳答案

您开始使用的基类是IdentityUser,但您是正确的,因为它使用字符串作为 PK。此默认值映射到注册时提供的电子邮件地址,这使事情变得更加复杂。不适合在任何地方用作 FK。

我更喜欢 PK 的 Int 值,但您也可以将其设置为其他值,并且 GUID 很常见。

See this thread for further details. ,您可以将其描述中的 GUID 替换为 int,并让 EF Core 管理迁移以帮助您到达所需位置。只要确保在需要的地方更新 ApplicationUser 即可,否则事情会变得相当棘手。

然后,如果您有任何需要将帖子与用户关联的内容(例如),您可以通过数字 PK 来实现,并将个人信息(电子邮件)保密,以防万一用户将其删除仍然附有一个号码。

关于c# - ASP.NET Core 上的身份 AspNetUsers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61332990/

相关文章:

c# - 将自定义对象从 C# 传递到 Powershell

javascript - 根据返回的数据隐藏和取消隐藏表 div

asp.net-core - 如何使用 Identityserver4 从外部提供商获取个人资料图片?

c# - 数据列表 row_data_bound 内的 gridview

c# - 如何正确排序此数组?

c# - unsigned char * - 等效的 C#

c# - 身份用户数据未更新

c# - 过滤用户列表 asp.net 身份

.net-core - 创建一个包含 3 个表中的列的 View

asp.net-core - Asp.net Core 2.1 Identity 的 LockoutEnabled 属性的实际用途是什么?