[英]Best Way To Access User Permissions From View
在我的ASP.NET MVC站点中,我的设置允许用户拥有角色,并且角色具有权限。 通常,这些权限是为控制器设置的。 在我的网站的主导航菜单中,经过身份验证的用户可以查看所有项目,即使它们无权访问该页面也是如此。
目前,我只能在用户通过身份验证的情况下基于菜单进行配置:
@if (Request.IsAuthenticated){ }
我想知道,仅出于为该用户配置菜单的目的,将用户权限传递给视图的最佳方法是什么? 是否有一些常用的方法,还是我必须自己实现? 我没有找到太多信息,但是也许我使用了错误的搜索词。
感谢您的任何建议。
编辑
抱歉,我可能还不够清楚。 这是我的主导航菜单,位于_Layout页面。 另外,分配给角色的权限可由管理员非常配置(他们也可以创建和删除角色),因此检查用户是否处于角色中无法满足我的需求。
您可以使用CommonController
创建一个操作,该操作返回包含导航的局部视图。 此局部视图可以具有自己的模型,可以从控制器中填充该模型。 例如,这允许您使用依赖项注入。
该动作可能如下所示:
[ChildActionOnly]
public ActionResult Navigation()
{
var model = new NavigationModel();
// populate the model..
return PartialView("_Navigation", model);
}
您可以在视图中呈现此局部视图(在您的情况下为_Layout.cshtml
),如下所示:
@Html.Action("Navigation", "Common")
在大多数情况下, Request.IsAuthenticated
很好。 仅在需要更高级的内容时才使用此功能。
您可以使用Roles
类的静态方法IsUserInRole
:
@if (Roles.IsUserInRole("Admin"))
{
// ...
}
最好的方法是在视图使用的视图模型上具有一个属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.