【发布时间】:2020-08-02 06:40:57
【问题描述】:
我能够使用角色管理器创建角色并使用 UserManager.AddToRoleAsync 将用户添加到角色 但是当使用 UserManager.RemoveFromRoleAsync(User, Role) 方法时,我总是收到错误提示 UserNotInRole
但是当使用 UserManager.GetUsersInRoleAsync("Administrator") 时,我得到了结果。
但是再次方法 UserManager.IsInRoleAsync(user, "Administrator"); 返回 false。
接下来,在检查 SQL 分析器时,我注意到在 UserInRole 表的 select 语句中为 userId 和 roleid 设置的参数是相反的
知道是什么导致了这种奇怪的行为吗?我正在使用 Identity.Core,版本=3.1.3.0
更新了代码 sn-p
我的 AspNetUserole 表
参考下图,只有 IsInRoleAsync 和 RemoveFromRoleAsync 方法获取失败,其他方法正在获取结果。
【问题讨论】:
-
向我们展示您的 AspNetUserRoles 表,并确认您来自 AddToRoleAsync 的管理员/用户正确获取用户。
-
@NanYu 我已经更新了详细信息。请告诉我这里缺少什么。
-
那么 AspNetUserRoles 有正确的用户和角色映射吗?如果创建一个新的角色和用户来测试,结果一样呢?
-
是的,新角色也有同样的问题。发现类似的问题报告了link,但在旧版本@NanYu
标签: c# asp.net-core asp.net-identity asp.net-core-3.1 role-manager