MVC5 / EF6 RoleManager

时间:2015-04-23 20:14:41

标签: asp.net-mvc asp.net-mvc-5 entity-framework-6

在我的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]
  • 中添加providersystem.web.roleManager

所有这些事情都没有给我带来好处。我真的想在MVC5 / EF6中使用身份验证/授权。我喜欢MVC5 / EF6 / Identity的说明,因为大多数人都会回答会员或其他事情。

1 个答案:

答案 0 :(得分:2)

您正在使用的Roles类是旧成员日的遗留物,一个auth框架,现在已被ASP.NET Identity取代。要执行角色检查,您必须通过User属性执行此操作,该属性是由OWIN身份验证中间件填充的IPrincipal。您的代码最终将如下所示:

@if (User.IsInRole("Admin") || User.IsInRole("Standard"))
{
    ....
}