运行命令@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) 我[Mvc.sitemap这里(http://snippi.com/s/mlih2tf) – ridermansb
我更新了我的答案。 – NightOwl888
我使用'[Authorize]',如果我使用'[Authorize]',为什么不应该这样做? 在测试中,它的工作! 举个例子,我会创建一个,并打开一个问题。谢谢。 – ridermansb