aspnet身份中用户的多个角色

时间:2017-06-01 18:46:59

标签: c# asp.net-mvc asp.net-identity role-base-authorization

在我的项目中,我有一个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

1 个答案:

答案 0 :(得分:2)

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

UserManager.UpdateSecurityStampAsync(userId);

这有助于解决您的问题。