0

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

因此,例如,我的用户名:“email@something.com”有 2 个角色:“会计”和“ 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
4

1 回答 1

2

在这种情况下,安全标记被更新。您需要专门更新/重置安全印章

UserManager.UpdateSecurityStampAsync(userId);

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

于 2017-06-02T03:57:27.937 回答