我正在尝试使用.NET身份。 我的用户具有与auth相关的属性。例如,电子邮件地址,密码,用户有权访问的项目等。 此外,用户还有其他字段,例如喜欢的颜色。
因为颜色与身份验证无关,所以我不想将颜色添加为ApplicationUser的属性:IdentityUser {}。
但是我需要以某种方式将值写入该字段,因此我可以编写一个存储库,该存储库使用常规的User对象。但是在那种情况下,我需要编写存储库,自己对密码进行哈希处理,那么拥有.NET Identity有什么意义呢?
第三个解决方案是制作2个表,一个用于ApplicationUser,一个用于相关属性,但是我们已经有一个数据库,并且我不想更改所有内容。
我可以想到的另一个想法是,将ApplicationUser:IdentityUser {}作为用户的副本(由于数据库的原因,我也无法从user和IdentityUser继承,也无法链接它)首先),并在auth中有一个单独的AuthenticationUser:IdentityUser。上下文。
我怎么做?
谢谢
答案 0 :(得分:0)
我认为,对于这个问题,您必须像以下那样更改模型:
public class Person
{
public string Color { get; set: }
public int RoleId { get; set: }
public Role Role { get; set: }
public ICollection<UserAuthentication> UserAuthentications { get; set: }
}
public class UserAuthentication
{
public Person Person { get; set: }
public int PersonId { get; set: }
}
有了这些模型,您就不会遇到这个问题。
如果有任何数据,可以使用TSql
进行替换。