我在使用 MVC 5 中的新身份系统时遇到问题,我的目标是在 Views 上使用 User.IsinRole("RoleName")。例如:
@if(User.IsInRole("Administrator"))
{
<li>@Html.ActionLink("Admin", "Index", "Admin")</li>
}
这放置在应用程序启动时点击的主布局页面中。在这样做时,我收到以下错误:
“System.Web.dll 中发生了‘System.Web.HttpException’类型的异常,但未在用户代码中处理
附加信息:无法连接到 SQL Server 数据库。”
我已经到处寻找解决方案,常见的解决方案是在控制器顶部包含“[InitializeSimpleMembership]”或在应用程序启动时手动初始化数据库连接。(使用 WebSecurity.InitializeDatabaseConnection)。这两种方法似乎都没有被 MVC 5 识别。
我还尝试通过在任何时候通过使用 Aspnet.Identity.UserManager 来确定角色来返回视图以使用 IsAdmin 布尔值填充 ViewBag 来创建一堆凌乱的代码来解决此问题。虽然这行得通,但这不是我觉得我应该做的事情的方式。
可能值得注意,但我在后端访问 User.IsInRole 时没有遇到这些问题,这绝对是一个初始化问题。