Jon*_*lis 5 c# permissions asp.net-mvc roles menu
在我的ASP.NET MVC站点中,我的设置允许用户拥有角色,角色拥有权限.通常,为控制器设置这些权限.在我的网站的主导航菜单中,经过身份验证的用户可以查看所有项目,即使他们无权访问该页面.
目前,我只能根据用户身份验证配置菜单:
@if (Request.IsAuthenticated){ }
Run Code Online (Sandbox Code Playgroud)
我想知道,将用户的权限传递给视图的最佳方法是什么,只是为了为该用户配置菜单?是否有一些常见的方法,或者我必须自己实施?我没有找到太多关于它的信息,但也许我使用了错误的搜索条件.
谢谢你的建议.
编辑
对不起,我可能不够清楚.这是我在_Layout页面中的主导航菜单.此外,分配给角色的权限可由管理员配置(他们也可以创建和删除角色),因此检查用户是否在角色中将无法满足我的需求.
您可以在 中创建一个操作,该CommonController操作返回包含导航的部分视图。该部分视图可以有自己的模型,可以从控制器填充该模型。例如,这允许您使用依赖注入。
该操作可能如下所示:
[ChildActionOnly]
public ActionResult Navigation()
{
var model = new NavigationModel();
// populate the model..
return PartialView("_Navigation", model);
}
Run Code Online (Sandbox Code Playgroud)
您可以在您的视图中渲染此部分(_Layout.cshtml在您的情况下),如下所示:
@Html.Action("Navigation", "Common")
Run Code Online (Sandbox Code Playgroud)
对于大多数情况来说,Request.IsAuthenticated就可以了。仅当您需要更高级的东西时才使用它。
| 归档时间: |
|
| 查看次数: |
822 次 |
| 最近记录: |