В настоящее время у меня есть 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, не отображался в сеансе отладки.
Есть ли способ достичь того, чего я хочу?