Razor视图上的MVC 5 IsInRole用法:无法连接到数据库

Stu*_*unt 13 sql-server asp.net-mvc authorization asp.net-mvc-5 asp.net-identity

我在MVC 5中使用新的身份系统时遇到问题,我的目标是在Views上使用User.IsinRole("RoleName").例如:

@if(User.IsInRole("Administrator"))
 {
   <li>@Html.ActionLink("Admin", "Index", "Admin")</li>
 }
Run Code Online (Sandbox Code Playgroud)

它位于主要布局页面中,该页面在应用程序启动时被点击.这样做,我收到以下错误:

"System.Web.dll中出现'System.Web.HttpException'类型的异常,但未在用户代码中处理

附加信息:无法连接到SQL Server数据库."

我已经搜索了高或低的解决方案,常见的解决方案是在控制器顶部包含"[InitializeSimpleMembership]"或在应用程序启动时手动初始化数据库连接.(使用WebSecurity.InitializeDatabaseConnection).MVC 5似乎都没有认识到这两种方法.

我还尝试通过使用Aspnet.Identity.UserManager确定角色来返回视图以使用IsAdmin布尔值填充ViewBag,从而创建一堆乱码.虽然这是有效的,但这并不是我觉得我应该做的事情.

可能值得注意,但我没有遇到访问后端User.IsInRole的这些问题,这肯定是一个初始化问题.

gri*_*urd 22

我遇到了同样的问题,但Stunt的答案对我不起作用.尝试了这个问题的答案,解决了这个问题.

对于懒惰,您可以尝试将其添加到您的web.config文件中:

 <system.webServer>
    <modules>
      <remove name="RoleManager" />
    </modules>
  </system.webServer>
Run Code Online (Sandbox Code Playgroud)

  • 我不得不从我的配置中删除它以便工作! (4认同)