0

我能够使用角色管理器创建角色并使用UserManager.AddToRoleAsync将用户添加到角色 但是当使用方法UserManager.RemoveFromRoleAsync(User, Role)时,我总是收到错误提示 UserNotInRole

在此处输入图像描述

  • 但是当使用UserManager.GetUsersInRoleAsync("Administrator")时,我得到了结果。 在此处输入图像描述

  • 但同样的方法UserManager.IsInRoleAsync(user, "Administrator"); 返回假。

  • 接下来,在检查 SQL 分析器时,我注意到在UserInRole表 的 select 语句中为 userId 和 roleid 设置的参数是相反的在此处输入图像描述

知道是什么导致了这种奇怪的行为吗?我使用 Identity.Core,版本=3.1.3.0

更新了代码片段

我的 AspNetUserole 表

在此处输入图像描述

参考下图,只有方法 IsInRoleAsync 和 RemoveFromRoleAsync 获取失败,其他方法正在获取结果。

在此处输入图像描述

4

1 回答 1

1

看起来您的身份UserRole表的密钥配置错误。可以在您修改IdentityUserRole表的地方发布代码片段 吗?

于 2020-04-20T07:38:09.460 回答