c# - ASP.NET Core Identity 3.1:UserManager.RemoveFromRoleAsync 总是返回 UserNotInRole
问题描述
我能够使用角色管理器创建角色并使用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 获取失败,其他方法正在获取结果。
解决方案
看起来您的身份UserRole表的密钥配置错误。可以在您修改IdentityUserRole表的地方发布代码片段 吗?
推荐阅读
- c# - 数据合并问题
- php - 使用 INNER JOIN 从两个 SQL 表中获取数据,显示 HTML 表
- django - How to configure lighttpd to serve django static files?
- python - Return index of original matrix that was transformed in a diagonal list - Python 3
- indexer - 在 iManage Worksite 中调试全文搜索
- r - 在数据帧列表上循环应用函数
- c++ - *(double*)&a 有什么作用?
- symfony - Symfony 3.4 RequestStack -> MasterRequest -> ClientIp
- c++ - 2 dimensional array of TCHAR
- r - 在 R/R-studio 中为仪表板创建更丰富的速度计仪表图表?