在我的项目中,我有一个2位用户,所以, 我在我的数据库中的AspNetUserRoles表中添加了一个具有2个角色的用户,
因此,例如,我的用户使用此用户名:“email@something.com”有两个角色:“会计”和“ ExecutiveExpert ”
但是当我调用User.IsInRole("ExecutiveExpert")
功能时,它只检查第一个角色:会计,而不是所有角色(会计和 ExecutiveExpert )并返回false,
如何更改asp.net标识以检查所有用户角色?一般可能吗?
这些是我的表格:
[AspNetUsers]:ID: c35721e2-05ef-4c32-8915-b4ad117c5a98
[AspNetRoles]:
Id Name
743f5c09-2b94-4da6-ab1c-9c9a6c9373b7 accountant
845efdf6-ab07-475c-9eb1-b14365b1a54c ExecutiveExpert
[AspNetUserRoles]:
userID RoleID
c35721e2-05ef-4c32-8915-b4ad117c5a98 743f5c09-2b94-4da6-ab1c-9c9a6c9373b7
c35721e2-05ef-4c32-8915-b4ad117c5a98 845efdf6-ab07-475c-9eb1-b14365b1a54c
答案 0 :(得分:2)
在这种情况下,安全标记会更新。您需要专门更新/重置安全标记
UserManager.UpdateSecurityStampAsync(userId);
这有助于解决您的问题。