【发布时间】:2020-09-07 22:36:38
【问题描述】:
目前正在处理一个有趣的问题。我正在建立一个具有三种不同用户角色的网站。登录后,MVC 部分视图会为用户显示导航选项。我想根据用户的角色显示不同的选项。在以前的网站中,我使用以下代码来确定角色:
@if (Roles.IsUserInRole("intern"))
{
<li>@Html.ActionLink("Log Time", "Index", "Time")</li>
}
不幸的是,当我在当前代码中尝试此操作时,我收到了以下消息:
The Role Manager feature has not been enabled.
显然,在新的 MVC 中,他们默认禁用角色管理器并有一种新的方法。没什么大不了的。搜索问题建议我在 web.config 中启用该功能。我遵循了几个关于如何做到这一点的说明(我保证我可以谷歌搜索),但它似乎与我的 SQL Server 连接字符串混淆,给我错误,表明它正在尝试登录到不存在的本地数据库,而不是我的 Azure SQL 服务器。我玩了一段时间,不知道为什么会这样。
总之,长话短说,与其解决并重新启用残留的身份功能,您应该如何在新的 MVC 中实现这一点?我可以通过用户管理器获得角色精细控制器端,但我不能在视图中使用它。同样,充满角色的 Viewbag 也无法工作,因为这是每个页面上的导航。
提前感谢所有帮助,谢谢大家!
【问题讨论】:
-
感谢 Brendan,很遗憾,无法在视图中实例化用户管理器,但您是对的,这绝对是用户解决方案。
标签: c# asp.net-mvc asp.net-identity