.NET身份用户,注意事项分离

时间:2018-09-27 08:58:43

标签: asp.net authentication asp.net-identity identity

我正在尝试使用.NET身份。 我的用户具有与auth相关的属性。例如,电子邮件地址,密码,用户有权访问的项目等。 此外,用户还有其他字段,例如喜欢的颜色。

  • 因为颜色与身份验证无关,所以我不想将颜色添加为ApplicationUser的属性:IdentityUser {}。

  • 但是我需要以某种方式将值写入该字段,因此我可以编写一个存储库,该存储库使用常规的User对象。但是在那种情况下,我需要编写存储库,自己对密码进行哈希处理,那么拥有.NET Identity有什么意义呢?

  • 第三个解决方案是制作2个表,一个用于ApplicationUser,一个用于相关属性,但是我们已经有一个数据库,并且我不想更改所有内容。

  • 我可以想到的另一个想法是,将ApplicationUser:IdentityUser {}作为用户的副本(由于数据库的原因,我也无法从user和IdentityUser继承,也无法链接它)首先),并在auth中有一个单独的AuthenticationUser:IdentityUser。上下文。

我怎么做?

谢谢

1 个答案:

答案 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进行替换。