AspNetCore.Identity RemoveFromRoleAsync不会从用户删除角色

时间:2018-10-15 21:06:48

标签: c# asp.net-core asp.net-core-identity

我正在使用ASP.NET Core Identity 2.0.2。当我致电vid-id时,它不会从用户中删除该角色。它说:

  

Microsoft.AspNetCore.Identity.UserManager:警告:用户b651a459-5d6b-4239-88e6-facb33f11e87不是管理员角色。

代码如下:

UserManager.RemoveFromRoleAsync

我还试图将var userResult = await _userManager.RemoveFromRoleAsync( user, requestRole.ToReadableString()); 函数中的数组角色传递给所有成员。

我看不到从用户中删除角色的其他方法。


更新

RemoveFromRolesAsync

roleResult和roleResult2均为假。
角色包含“管理员”。
如果我以该用户身份登录,则该用户具有“管理员”角色。
因此,Authorize Attribute表示用户具有以下角色:

var roleResult = await _userManager
    .IsInRoleAsync(
        user,
        requestRole.ToReadableString());

var roleResult2 = await _userManager
    .IsInRoleAsync(
        user,
        "Administrator");

var roles = await _userManager
    .GetRolesAsync(user);

var userResult = await _userManager
    .RemoveFromRoleAsync(
        user,
        requestRole.ToReadableString());

另一个测试:

[Authorize(Roles = "Administrator", AuthenticationSchemes = "Bearer")]

对于从GetRolesAsync(user)返回的所有角色,方法IsInRoleAsync()都为false;
那里发生了什么事?

1 个答案:

答案 0 :(得分:0)

  1. 在“ AspNetRoles”表中查找正确的角色名称

  2. 外观是“ AspNetUserRoles”表中角色的用户

  3. 从RemoveFromRoleAsync的“ AspNetRoles”中指定角色名称