Добавить претензии к роли
Я хочу добавить претензии к каждой роли в моем проекте, а затем проверить разрешение, а не всю роль. Я прочитал статью http://benfoster.io/blog/asp-net-identity-role-claims и вижу строки:
await roleManager.AddClaimAsync(adminRole, new Claim(CustomClaimTypes.Permission, "projects.view"));
await roleManager.AddClaimAsync(adminRole, new Claim(CustomClaimTypes.Permission, "projects.create"));
await roleManager.AddClaimAsync(adminRole, new Claim(CustomClaimTypes.Permission, "projects.update"));
Я создал следующий менеджер ролей:
public class ApplicationRoleManager : RoleManager<IdentityRole>
{
public ApplicationRoleManager(IRoleStore<IdentityRole, string> roleStore)
: base(roleStore)
{
}
public static ApplicationRoleManager Create(IdentityFactoryOptions<ApplicationRoleManager> options, IOwinContext context)
{
return new ApplicationRoleManager(new RoleStore<IdentityRole>(context.Get<ApplicationDbContext>()));
}
}
и зарегистрируйте его в автозагрузке:
app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create);
тогда получите это:
public ApplicationRoleManager RoleManager
{
get
{
return _roleManager ?? HttpContext.GetOwinContext().Get<ApplicationRoleManager>();
}
private set
{
_roleManager = value;
}
}
но у RoleManager нет метода AddClaimAsync. Как добавить претензии к роли?