在我的Index.cshtml
我正在检查Role
的{{1}}。
User
当我在浏览器中加载@if (Roles.IsUserInRole("Admin") || Roles.IsUserInRole("Standard"))
{
}
时,收到此错误:
Index.cshtml
我已经阅读了多个对我不起作用的解决方案:
An exception of type 'System.Web.HttpException' occurred in System.Web.dll but was not handled in user code
Additional information: Unable to connect to SQL Server database.
中的RoleManager
。web.config
(因为MVC5使用身份而无法工作)[InitializeSimpleMembership]
。provider
到system.web.roleManager
所有这些事情都没有给我带来好处。我真的想在MVC5 / EF6中使用身份验证/授权。我喜欢MVC5 / EF6 / Identity的说明,因为大多数人都会回答会员或其他事情。
答案 0 :(得分:2)
您正在使用的Roles
类是旧成员日的遗留物,一个auth框架,现在已被ASP.NET Identity取代。要执行角色检查,您必须通过User
属性执行此操作,该属性是由OWIN身份验证中间件填充的IPrincipal。您的代码最终将如下所示:
@if (User.IsInRole("Admin") || User.IsInRole("Standard"))
{
....
}