gpt4 book ai didi

asp.net-mvc - 如果 MvcSiteMapProvider 的操作标记为 [Authorize(Roles = "Administrator")],则在 MvcSiteMapProvider 中显示节点

转载 作者:行者123 更新时间:2023-12-04 05:49:22 24 4
gpt4 key购买 nike

目前,我有一个 ControllerIndex()需要授权的 Action 方法:

public partial class CustomerController : BaseDocumentStoreController
{
[Authorize(Roles = AccountController.Administrator)]
public virtual ViewResult Index()
{
...
}

...
}

有了这个, Mvc.sitemap 中的相应节点不会显示在面包屑中:
<mvcSiteMapNode     title="Customer"         controller="Customer" action="Index"
resourceKey="Customers" clickable="true" >

<mvcSiteMapNode title="Customer Add" controller="Customer" action="Add"
resourceKey="Add" />
<mvcSiteMapNode title="Customer Create" controller="Customer" action="Create"
resourceKey="Add" />
<mvcSiteMapNode title="Customer Edit" controller="Customer" action="Edit"
resourceKey="Edit" />
<mvcSiteMapNode title="Customer Update" controller="Customer" action="Update"
resourceKey="Edit" />
<mvcSiteMapNode title="Customer Delete" controller="Customer" action="Delete"
resourceKey="Delete" />
<mvcSiteMapNode title="Customer Details" controller="Customer" action="Details"
resourceKey="Details" />
<mvcSiteMapNode title="Customer Search" controller="Customer" action="Search"
resourceKey="Search" />

</mvcSiteMapNode>

我想要的是无论如何都显示这个节点......

假设用户未通过身份验证。所以我希望面包屑显示这一点:
Home > Customers > Add

目前它只显示:
Add

如果用户点击 客户节点他将被重定向到登录 View ...好的,没关系!

我尝试实现自己的 SiteMapVisibilityProvider关注 these steps :
public class SiteMapVisibilityProvider : ISiteMapNodeVisibilityProvider
{
...
}

在调试时,我只能看到 Index 节点下方的节点,也就是说,在我目前的情况下,只有 Add 节点出现。表示 Index 操作方法的节点未显示在调试 session 中。

有什么方法可以实现我想要的吗?

最佳答案

问题很可能在于 DefaultAclModule ,它隐藏了当前用户无法访问的所有节点。如果您不想要该功能,可以通过设置 securitytrimming 来禁用它。在 web.config 的站点地图提供程序中为 false。

您还可以通过实现自定义 AclModule 来更改功能。 .

关于asp.net-mvc - 如果 MvcSiteMapProvider 的操作标记为 [Authorize(Roles = "Administrator")],则在 MvcSiteMapProvider 中显示节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10266197/

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