Может ли 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
включен. Смотрите раздел Регистрация провайдера.