Taw*_*feh 1 asp.net-identity entity-framework-core .net-core asp.net-core
ASP.NET 核心的默认实现Guid用作用户和角色表的主键。
我在这里担心的是,在 DB 设计过程中,开发人员经常需要将实体链接到用户 ID 作为外键,例如添加ModifiedBy和CreatedBy列进行审计,在这种情况下,外键将nvarchar(450)是远非有效的int执行JOINs 和其他类型的查询时的主键。
我知道我可以将身份核心配置为使用自定义主键类型,例如int,但出于安全考虑,我是否应该坚持默认配置(我不是安全专家)?
JOIN与int外键相比,字符串外键上的 s也不是非常慢(加上主键是 an 的组合,nvarchar这使得情况更糟)?
PS:在 ASP.NET 核心的上下文之外,我一般不会首先使用代码或 EF
实际上,默认的 PK 类型是string. 它只是看起来像一个Guid. 无论如何,PK 本质上是一个索引列,因此它实际上是什么类型非常无关紧要。使用您喜欢的任何类型都没有安全问题,因此如果您更喜欢整数,请使用整数。或者,您实际上也可以使用 true Guid。在这种情况下,您将在数据库中得到一个 uniqueidentifier 列。长和短,这主要是您的个人喜好。不过,我确实倾向于使用整数。
| 归档时间: |
|
| 查看次数: |
537 次 |
| 最近记录: |