从用户MVC 5中删除所有角色

O. *_*ifa 6 c# asp.net asp.net-mvc asp.net-mvc-5 asp.net-identity-2

祝你平安

我试图从用户删除所有角色以禁用他的权限,并阻止他访问某些页面.

我发现这个方法删除了一个角色并且它有效:

await UserManager.RemoveFromRoleAsync(userid, role);
Run Code Online (Sandbox Code Playgroud)

其中userid是我要禁用其权限的用户ID.

因此,我使用此代码删除同一用户的所有角色

foreach (string role in roles) {

 await UserManager.RemoveFromRoleAsync(userid, role);

}
Run Code Online (Sandbox Code Playgroud)

但我坚持在这里如何保存AspNetRoles表中的角色ID

string[] roles 
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

或者是否有其他方法可以删除用户的所有角色?

我使用的是asp.net身份版本2

Nko*_*osi 21

用户管理器有一个方法Task<IList<string>> GetRolesAsync(TKey userId),其

返回用户的角色

还有Task<IdentityResult> RemoveFromRolesAsync(TKey userId, params string[] roles)那个

从多个角色中删除用户

所以结合两者来实现你想要的

var roles = await UserManager.GetRolesAsync(userid);
await UserManager.RemoveFromRolesAsync(userid, roles.ToArray());
Run Code Online (Sandbox Code Playgroud)