有人可以向我描述如何使用asp.net身份删除角色。我尝试了以下方法,但它没有用,我收到不支持指定方法错误:
public async Task DeleteRole(string role)
{
// delete role
var roleStore = new RoleStore<IdentityRole>(new Context());
await roleStore.DeleteAsync(new IdentityRole(role));
}
不确定这是指我的异步逻辑,还是特别是asp.net身份本身。然而,有人可以告诉我如何使这项工作正确。目前,asp.net的新身份系统几乎没有可用的文档。
答案 0 :(得分:8)
Identity上下文(IdentityDbContext)包含角色存储。所以你会(假设AppDb是你的背景):
var role = AppDb.Roles.Where(d => d.Name == "my role name").FirstOrDefault();
AppDb.Roles.Remove(role);
AppDb.SaveChanges();
您基本上将其视为正常的EntityFramework DbSet,它继承自IdentityDbContext。
答案 1 :(得分:0)
我知道这是一个老问题,但是我尝试了一种不直接影响存储(或DbContext
)的方法。
我已经在ASP.NET Core 2.1中使用了它
var role = await _roleManager.FindByNameAsync(roleName);
var result = await _roleManager.DeleteAsync(role);
无需多说:
AspNetUserRoles
AspNetRoleClaims
AspNetRoles