如何向用户角色表添加第三个属性?

时间:2019-02-17 13:53:03

标签: c# asp.net-core-mvc asp.net-core-identity

我们在项目中使用基于用户角色的授权。我们需要在表(用户角色表)中添加一个属性,这将导致用户在建立该属性时具有该角色。例如,我们要说位置X的用户A扮演特殊角色,而位置Y的同一用户又扮演另一个角色。 (使用.net内核)

3 个答案:

答案 0 :(得分:1)

对于这些自定义项,有一个特殊的表叫做用户声明表,而不是更改角色表。您可以在此处为用户分配新的和不同的属性。角色只是ASP.NET Core Identity中的另一个用户声明,并且将在幕后自动转换为用户声明。定义一个新的用户声明(companyB,attrX),(companyA,attrZ)。然后定义一个新的授权策略以供使用。 以下是有关user-claimscustom policies的一些官方文档。

答案 1 :(得分:0)

查看以下内容:

public class ApplicationUserRole : IdentityUserRole<string>
{
    public virtual ApplicationUser User { get; set; }
    public virtual ApplicationRole Role { get; set; }
    public string MyProperty { get; set; }
}

引用here

答案 2 :(得分:0)

如果您希望用户具有多个角色,则可以添加一个继承ApplicationRole的{​​{1}}类,并将IdentityRoleApplicationUser之间的关系更改为一对多,请参阅以下内容:

ApplicationRole类

ApplicationRole

ApplicationUser类

 public class ApplicationRole:IdentityRole
{
    public string Location { get; set; }//add the stuff you want
    public ApplicationUser ApplicationUser { get; set; }
}

在Fluent API中配置一对多关系

 public class ApplicationUser:IdentityUser
{
    public List<ApplicationRole> ApplicationRoles { get; set; }
}