Я использую MVCsiteMapProvider, v4.6.1.
Это моя проблема: у меня есть раздел меню, который виден только администраторам. Я достигаю этого, включив подстройку безопасности и декорируя свои контроллеры и/или методы контроллера, чтобы определить критерии обрезки.
Административные задачи
- Добавлять
- Редактировать
- Удалять
Что мне нужно сделать, так это сделать узел «AdminTasks» недоступным для кликов, но видимым только для администраторов.
Поведение, которое я наблюдаю, заключается в том, что если я отмечу «AdminTasks» как clickable="false"
в карте сайта, узел будет отображаться для всех, независимо от того, является ли пользователь администратором или нет. Похоже, что в узлах с пометкой clickable='false'
не выполняется обрезка безопасности.
Я предполагаю, не изучая слишком много кода, что, когда узел помечен clickable='false'
, SiteMapProvider не пытается разрешить какой-либо маршрут (поскольку он все равно не нужен для целей навигации); но при этом он не проверяет декорации в контроллерах, поэтому пропускает обрезку безопасности.
Верно ли мое предположение? Есть ли способ сделать неактивный узел, который по-прежнему защищен безопасностью?
Спасибо