自定义身份用户

时间:2019-10-13 18:59:21

标签: asp.net-mvc

我正在尝试从使用默认的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

1 个答案:

答案 0 :(得分:1)

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