User.IsInRole()始终仅在控制器中返回false

时间:2018-02-03 18:21:46

标签: c# .net asp.net-mvc asp.net-identity roleprovider

在标题中User.IsInRole()总是在控制器中返回false,但在视图中效果很好。另外我无法设置 <roleManager enabled="true" />,因为我在项目构建时遇到了错误

  

使用注册为allowDefinition =&#39; MachineToApplication&#39;的部分是错误的。超出应用水平。此错误可能是由于虚拟目录未在IIS中配置为应用程序。

任何sugestions?或者有没有其他方法来检查当前用户是否在角色? (我试过Roles.IsUserInRole(User.Identity.Name, "Recruit"),但我得到了相同的结果)。我正在使用ASP.NET MVC 5和.NET Identity 6.2

1 个答案:

答案 0 :(得分:2)

Roles.IsUserInRole是MembershipProvider的一部分。如果您使用的是Asp.Net Identity,则需要使用RoleManagerMSDN)代替。

原因是因为您可以使用User.IsInRole - 身份框架支持此调用,它会查找cookie,检查cookie中可用的角色。