如标题中User.IsInRole()
在控制器中总是返回 false,但在视图中效果很好。此外,我无法设置 <roleManager enabled="true" />
,因为我在项目构建时遇到以下错误
使用注册为 allowDefinition='MachineToApplication' 超出应用程序级别的部分是错误的。 此错误可能是由于虚拟目录未配置为 IIS 中的应用程序引起的。
有什么建议吗?或者有没有其他方法可以检查当前用户是否在角色中?(我尝试了Roles.IsUserInRole(User.Identity.Name, "Recruit")
但我得到了相同的结果(。我正在使用 ASP.NET MVC 5 和 .NET Identity 6.2
Roles.IsUserInRole
是MemberProvider的一部分。如果您使用的是 Asp.Net 标识,则需要改用RoleManager
(MSDN(。
原因,因为您可以使用User.IsInRole
- 标识框架支持此调用,它会查看 cookie,检查 cookie 中可用的角色。