向 AspNetUsers 表扩展/添加属性时,最佳做法是什么?(.Net Core 2.0(
1( 可以在 AspNetUsers 表中添加其他属性
2(你可以把东西放在索赔中
3( 您可以在属性中放置对另一个表的引用
4(您可以使用 user.id 并将其与更多数据一起存储在另一个表中
那么最佳实践是什么?
好吧,#1 和 #2 都是可以接受的,具体取决于特定情况。但是,#3 和 #4 是应避免的不良做法。这类似于UserProfile
使用的机制 ASP.NET 成员资格,但这只是必要的,因为它是一个无法操纵的固定实体User
。标识被设计为可扩展的,因此请扩展它。
在决定是否使用属性或声明方面,这主要取决于数据类型。如果你谈论的是像FirstName
、LastName
等东西——同样适用于每个用户的东西——我会选择属性。相反,我会对Facebook访问令牌等使用声明。将其存储在AspNetUsers
表上将导致数据库的非规范化,因为许多用户对该列只有 NULL。声明本质上是特定于用户的和暂时性的。