При запуске команды @Html.MvcSiteMap().Menu(false)
отображаются все узлы (даже те, кому отказано в доступе).Отклонено узлом
В качестве примера у меня есть контроллер Financeiro
[Authorize(Roles = "Financeiro")]
public class homeController : baseController
{
public ActionResult index()
{
return View();
}
}
В Mvc.sitemap
<mvcSiteMapNode title="Financeiro" roles="Financeiro" area="Financeiro" clickable="false">
<mvcSiteMapNode title="Contas" controller="contas" action="index">
<mvcSiteMapNode title="Nova conta" action="novo" changeFrequency="Never" btnClass="btn-primary" />
</mvcSiteMapNode>
<mvcSiteMapNode title="Categorias" controller="categorias" action="index" />
<mvcSiteMapNode title="A Pagar" controller="apagar" action="index" description="Contas a pagar" />
<mvcSiteMapNode title="A Receber" controller="areceber" action="index" description="Contas a receber" />
</mvcSiteMapNode>
Ninject
Я использую Ninject и установленный пакет MvcSiteMapProvider.MVC4.DI.Ninject.Modules
В файле MvcSiteMapProviderModule.cs
this.Kernel.Bind<ISiteMapNodeVisibilityProviderStrategy>().To<SiteMapNodeVisibilityProviderStrategy>()
.WithConstructorArgument("defaultProviderName", "MvcSiteMapProvider.FilteredSiteMapNodeVisibilityProvider, MvcSiteMapProvider");
Пакеты
MvcSiteMapProvider.MVC4 4.0.6
MvcSiteMapProvider.MVC4.Core 4.0.6
MvcSiteMapProvider.MVC4.DI .... 4.0.6 MvcSiteMapProvider.Web 4.0.6
Когда пользователь (с или без Financiero
роли) получает доступ к системе, то узел отображается
После внесения этих изменений, я получаю [эта ошибка] (http://snag.gy/rHIeY.jpg) My [Mvc.sitemap здесь] (http://snippi.com/s/mlih2tf) – ridermansb
Я обновил свой ответ. – NightOwl888
Я использую '[Authorize]', почему не следует делать это, если я использую '[Authorize]'? В тестах я сделал, это сработало! Как, например, я создам его и открою проблему. Благодарю. – ridermansb