【问题标题】:Custom IdentityUser自定义身份用户
【发布时间】:2020-02-10 11:47:31
【问题描述】:

我正在尝试从使用默认 IdentityUser 更改为自定义 AppUser。我基本上已经添加到 ApplicationDBContext 并尝试迁移和更新数据库。但这给了我以下错误:

无法在“AppUser”上配置密钥,因为它是派生类型。必须在根类型“IdentityUser”上配置密钥。如果您不打算将“IdentityUser”包含在模型中,请确保它不包含在上下文的 DbSet 属性中、在对 ModelBuilder 的配置调用中引用或从包含的类型的导航属性中引用在模型中。

如何在根 IdentiyUser 上配置它,因为它对我隐藏?

此更改的原因是我希望将用户详细信息附加到 IdentityUser。简单地为这些事情创建另一个表并且只为 userId 设置一个外键会更容易吗?这样的实现会有什么缺点?

参考 https://docs.microsoft.com/en-us/aspnet/core/security/authentication/add-user-data?view=aspnetcore-3.0&tabs=visual-studio

【问题讨论】:

  • 按用户详细信息,您指的是多少个属性?如果它只是几个或者你不想延迟加载数据,你总是可以通过添加属性来自定义 IdentityModels.cs 中的 ApplicationUser 类。见stackoverflow.com/questions/40532987/…

标签: asp.net-mvc


【解决方案1】:

我的方法是后者。是保持 IdentityUser 原样并创建一个新表来保存用户详细信息。我这样做的原因是关注点分离。配置文件数据与身份数据分开。它还在逻辑上将实体分开,以便四年后查看此代码的人可以理解实体。这种实现的唯一缺点是有第二个表和一个外键。这会稍微增加空间和关系破裂的可能性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 2014-02-04
    相关资源
    最近更新 更多