我们在项目中使用基于用户角色的授权。我们需要在表(用户角色表)中添加一个属性,这将导致用户在建立该属性时具有该角色。例如,我们要说位置X的用户A扮演特殊角色,而位置Y的同一用户又扮演另一个角色。 (使用.net内核)
答案 0 :(得分:1)
对于这些自定义项,有一个特殊的表叫做用户声明表,而不是更改角色表。您可以在此处为用户分配新的和不同的属性。角色只是ASP.NET Core Identity中的另一个用户声明,并且将在幕后自动转换为用户声明。定义一个新的用户声明(companyB,attrX),(companyA,attrZ)。然后定义一个新的授权策略以供使用。 以下是有关user-claims和custom 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}}类,并将IdentityRole
和ApplicationUser
之间的关系更改为一对多,请参阅以下内容:
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; }
}