Използвам MVCSiteMapProvider, v4.6.1
Това е моят проблем: имам раздел от менюто си, който е видим само за администраторите. Постигам това, като активирам изрязване на сигурността и декорирам моите контролери и/или методи на контролер, за да определя критериите за изрязване.
AdminTasks
- Добавете
- редактиране
- Премахване
Това, което трябва да направя, е да направя възела „AdminTasks“ да не може да се кликва, но все пак да е видим само за администраторите.
Поведението, което наблюдавам, е, че ако маркирам „AdminTasks“ като clickable="false"
в картата на сайта, възелът се показва за всички, независимо дали потребителят е администратор или не. Изглежда, че във възлите, маркирани с clickable='false'
, не се извършва подрязване на сигурността.
Моето предположение е, без да изследвам твърде много кода, че когато възелът е маркиран с clickable='false'
, SiteMapProvider не се опитва да разреши какъвто и да е маршрут (тъй като така или иначе не е необходим за целите на навигацията); но по този начин той не проверява декорациите в контролерите, поради което пропуска подрязването на сигурността.
Правилно ли е предположението ми? Има ли някакъв начин да имате възел без кликване, който все още е подрязан за защита?
Благодаря