gpt4 book ai didi

asp.net-mvc - 如何在 mvc 中保持 View 不受授权逻辑的影响?

转载 作者:行者123 更新时间:2023-12-04 20:59:01 26 4
gpt4 key购买 nike

我有一个 View 来显示项目列表。
用户可以编辑、删除或创建新项目,但根据他们的授权,他们可能会或可能不会被允许执行其中的某些操作。

我有要求只显示当前用户被允许执行的操作,但我不想通过授权 if-else 来混淆 View

鄙视这是一个非常普遍的要求,我找不到真正令人满意的方法。

到目前为止,我最好的方法是为 Html.ActionLink 提供过载。需要请求许可的扩展方法,但会有更复杂的场景,比如隐藏整个 html 块或切换标签+隐藏的文本框。

有一个更好的方法吗?

最佳答案

我能想到的一个例子是调用 Html.RenderAction(链接:http://msdn.microsoft.com/en-us/library/ee703490.aspx),然后将您希望用作路由值的链接传递给操作方法(它将作为您操作的参数出现)。因为它是一个 RenderAction,你可以返回 Controller 进程,因此你可以让它根据用户的状态呈现你想要的任何 View 或数据。

例子:

<% Html.RenderAction("Permissions" /* Controller */, "PermissionLink", new { Url = "Admin.aspx" }); %>

你的 Controller 会有类似的东西:
public ActionResult PermissionsLink (string url)
{
// Do Whatever kind of Authentication you want here, Session is available, etc

if(authenticated)
return View("Link");
else
return View("Blank");
}

关于asp.net-mvc - 如何在 mvc 中保持 View 不受授权逻辑的影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2724481/

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