Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC5/EF6角色管理器_Asp.net Mvc_Asp.net Mvc 5_Entity Framework 6 - Fatal编程技术网

Asp.net mvc MVC5/EF6角色管理器

Asp.net mvc MVC5/EF6角色管理器,asp.net-mvc,asp.net-mvc-5,entity-framework-6,Asp.net Mvc,Asp.net Mvc 5,Entity Framework 6,在我的Index.cshtml中,我正在检查用户的角色 @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 Addition

在我的
Index.cshtml
中,我正在检查
用户的
角色

@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.
我读过多个不适合我的解决方案:

  • web.config
    中删除
    rolemager
  • 使用
    [InitializeSimpleMembership]
    (不起作用,因为MVC5使用标识)
  • web.config
    中的
    system.web.rolemager
    中添加一个
    提供程序

所有这些事情对我来说都不起作用。我真的想在MVC5/EF6中使用身份验证/授权。我想了解有关MVC5/EF6/Identity的说明,因为大多数人都会回答会员资格或其他问题。

您正在使用的
角色
类是旧会员资格时代遗留下来的,是一个auth框架,现在已被ASP.NET Identity取代。要执行角色检查,必须通过
User
属性执行,该属性是由OWIN身份验证中间件填充的IPrincipal。您的代码最终将看起来像:

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

如果您使用
User.IsInRole(“…”)
会发生什么?嘿,这太好了!请详细介绍一下这个解决方案好吗?很遗憾,登录时它不起作用。我再次收到相同的错误。嗯,尝试撤消您之前所做的更改。您是否正在使用现成的样板身份验证设置?如OP中的要点?我已经把它们还原了。所以我的认证码是干净的,开箱即用的。唯一改变的是我在web.config中启用了roleManager