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