aspnet 身份中用户的多个角色

multiple roles for a user in aspnet identity

在我的项目中,我有一个用户有 2 个职位,所以, 我在我的数据库 table 的 AspNetUserRoles table 中添加了一个具有 2 个角色的用户,

所以,例如,我的用户名:"email@something.com" 有 2 个角色:“accountant”和“ExecutiveExpert

但是当我调用 User.IsInRole("ExecutiveExpert") 函数时,它只检查第一个角色:accountant,而不是所有角色(accountantExecutiveExpert) 并且 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);

这将有助于解决您的问题。