【发布时间】:2017-06-07 14:30:00
【问题描述】:
我正在使用 ASP.Net MVC 和 Identity 2.0 开发多租户 Web 应用程序。我已经像这样扩展了 IdentityRole:
public class ApplicationRole : IdentityRole
{
public ApplicationRole() : base() { }
public ApplicationRole(string name) : base(name) { }
public string TenantId { get; set; }
}
这是因为每个租户都有单独的角色集,例如“管理员”、“员工”等。
但问题是,当我添加新角色时,如果“租户 A”具有“管理员”角色,当我向“租户 B”添加“管理员”角色时,我会收到 IdentityResult 错误,因为“管理员”名字被取了……这有点明显,因为 AspNetRoles 表上的“名称”字段是唯一的……
IdentityResult roleResult = await RoleManager.CreateAsync(
new ApplicationRole
{
Name = "Admin",
TenantId = GetTenantId()
});
但是我如何自定义 ASP.Net 身份,以便“AspNetRoles”中的“名称”字段可以与“TenantId”是唯一的,而不是单独的?我找到了有关扩展 IdentityRole 的信息(就像我添加了一个字段一样),但没有找到关于更改或替换它的信息...
【问题讨论】:
标签: asp.net-mvc multi-tenant asp.net-identity-2