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