使用Asp.net Identity删除角色

时间:2013-11-19 18:08:18

标签: c# asp.net-mvc

有人可以向我描述如何使用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的新身份系统几乎没有可用的文档。

2 个答案:

答案 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