Может ли MvcSiteMap работать так же, как в 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 ответа

Я знаю, что это старый пост, но на тот случай, если кто-то с ним столкнется, вы можете явно достичь того, что ищете, добавив атрибут role в файл mvc.sitemap, где вы регистрируете узлы. Любой, кто не принадлежит этой роли, не сможет увидеть узел с этим атрибутом.

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

В ASP.NET рекомендуемым способом определения авторизации является использование атрибута AuthorizeAttribute.

AuthorizeAttribute полностью поддерживается MvcSiteMapProvider, когда securityTrimming включен. Смотрите раздел Регистрация провайдера.

Другие вопросы по тегам