如果ASP.NET Core Identity 3.1的UserManager.RemoveFromRoleAsync方法总是返回UserNotInRole错误,可能是因为用户不在指定的角色中。以下是一种可能的解决方法:
var user = await _userManager.FindByNameAsync(username);
if (user == null)
{
// 用户不存在
// handle error
}
var role = await _roleManager.FindByNameAsync(roleName);
if (role == null)
{
// 角色不存在
// handle error
}
var isInRole = await _userManager.IsInRoleAsync(user, roleName);
if (!isInRole)
{
// 用户不在角色中
// handle error
}
var result = await _userManager.RemoveFromRoleAsync(user, roleName);
if (!result.Succeeded)
{
// 移除角色失败
// handle error
}
通过以上步骤,您应该能够成功地从用户中移除指定的角色。
上一篇:ASP.NET Core Identity 2.0:为特定用户添加自定义标志并由另一个用户访问
下一篇:ASP.NET CORE Identity DataProtectionTokenProviderOptions 密码重置令牌无效。