MvcSiteMap可以像WebForms中的那样工作

时间:2012-06-12 09:29:33

标签: asp.net-mvc authorization asp.net-mvc-sitemap

在webforms中,如果某个用户无法访问某个路径,它将被隐藏,是否可以使用MvcSiteMap完成?

https://github.com/maartenba/MvcSiteMapProvider

在Webforms中,你需要的就是

  <location path="SomePath">
    <system.web>
      <authorization>
        <allow roles="SomeRole" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>

如果您不属于SomeRole,菜单项将被隐藏,可能在MvcSiteMap中?

2 个答案:

答案 0 :(得分:0)

在ASP.NET中,定义授权的推荐方法是使用AuthorizeAttribute

启用AuthorizeAttribute时,MvcSiteMapProvider完全支持securityTrimming。请参阅Registering the provider

答案 1 :(得分:0)

我知道这是一个旧帖子,但万一有其他人发生,你可以通过将roles属性添加到你注册节点的mvc.sitemap文件中,明确地实现你想要的。不属于该角色的任何人都将无法看到具有该属性的节点。

<mvcSiteMapNode title="TheMenuOption" clickable="false"  roles="someRole">