aspnet 身份中用户的多个角色
multiple roles for a user in aspnet identity
在我的项目中,我有一个用户有 2 个职位,所以,
我在我的数据库 table 的 AspNetUserRoles table 中添加了一个具有 2 个角色的用户,
所以,例如,我的用户名:"email@something.com" 有 2 个角色:“accountant”和“ExecutiveExpert
但是当我调用 User.IsInRole("ExecutiveExpert")
函数时,它只检查第一个角色:accountant,而不是所有角色(accountant 和 ExecutiveExpert) 并且 returns false,
如何更改 asp.net 身份以检查所有用户角色?一般可以吗?
这些是我的 tables :
[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
在这种情况下,安全标记已更新。您特别需要 renew/reset 安全戳
UserManager.UpdateSecurityStampAsync(userId);
这将有助于解决您的问题。
在我的项目中,我有一个用户有 2 个职位,所以, 我在我的数据库 table 的 AspNetUserRoles table 中添加了一个具有 2 个角色的用户,
所以,例如,我的用户名:"email@something.com" 有 2 个角色:“accountant”和“ExecutiveExpert
但是当我调用 User.IsInRole("ExecutiveExpert")
函数时,它只检查第一个角色:accountant,而不是所有角色(accountant 和 ExecutiveExpert) 并且 returns false,
如何更改 asp.net 身份以检查所有用户角色?一般可以吗?
这些是我的 tables :
[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
在这种情况下,安全标记已更新。您特别需要 renew/reset 安全戳
UserManager.UpdateSecurityStampAsync(userId);
这将有助于解决您的问题。