目前,我有一个需要授权Controller
的Index()
操作方法:
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
如果用户单击“客户”节点,他将被重定向到登录视图……好的,没关系!
SiteMapVisibilityProvider
我尝试按照以下步骤实现自己的:
public class SiteMapVisibilityProvider : ISiteMapNodeVisibilityProvider
{
...
}
在调试时,我只能看到 Index 节点下方的节点,也就是说,在我目前的情况下,只有 Add 节点出现。表示 Index 操作方法的节点未显示在调试会话中。
有什么方法可以实现我想要的吗?