gpt4 book ai didi

c# - 从 View 访问用户权限的最佳方式

转载 作者:太空狗 更新时间:2023-10-29 23:22:59 25 4
gpt4 key购买 nike

在我的 ASP.NET MVC 站点中,我的设置允许用户拥有角色,并且角色拥有权限。通常,这些权限是为 Controller 设置的。在我网站的主导航菜单中,经过身份验证的用户可以看到所有项目,即使他们没有被授权访问该页面。

目前我只能在用户通过身份验证的情况下配置菜单:

@if (Request.IsAuthenticated){ }

我想知道,仅为了为该用户配置菜单,将用户权限传递给 View 的最佳方式是什么?有没有一些通用的方法,还是我必须自己实现?我没有找到太多关于它的信息,但也许我使用了错误的搜索词。

感谢您的任何建议。

编辑

对不起,我可能还不够清楚。这是我的主导航菜单,在 _Layout 页面中。此外,分配给角色的权限非常容易由管理员配置(他们也可以创建和删除角色),因此检查用户是否在角色中不能满足我的需要。

最佳答案

您可以在 CommonController 中创建一个操作,它返回包含您的导航的部分 View 。这个部分 View 可以有自己的模型,可以从 Controller 填充。例如,这允许您使用依赖注入(inject)。

Action 可能是这样的:

[ChildActionOnly]
public ActionResult Navigation()
{
var model = new NavigationModel();
// populate the model..

return PartialView("_Navigation", model);
}

您可以在您的 View 中呈现此部分(在您的情况下为 _Layout.cshtml),如下所示:

@Html.Action("Navigation", "Common")

对于大多数情况,Request.IsAuthenticated 就可以了。仅当您需要更高级的东西时才使用它。

关于c# - 从 View 访问用户权限的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21441215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com