Поставщик местоположения
Вопрос
Нам нужно заменить систему меню в нашем основном приложении ASP.NET.Поэтому, естественно, мы рассматриваем ASP.NET. SiteMapProvider
и Menu
элементы управления.Однако нам также нужна достаточная безопасность, чтобы пользователи не могли напрямую вводить URL-адреса, к которым у них не должно быть доступа.Мы можем сделать это, поставив <location>
записи в веб.конфигурация и защищать их по отдельности, но это будет PITA для управления несколькими веб-серверами.
Есть ли Provider
который можно использовать, чтобы обеспечить эквивалент <location>
записи?Мне не удалось его найти, и это немного расстраивает, учитывая существование КонфигурацияРасположение сорт.
Альтернативно, есть ли опция конфигурации, которую нам не хватает в SiteMapProvider, которая будет ограничивать доступ пользователей к URL-адресам, которые им не следует использовать?
Решение
Почему бы вам не создать права и профили для управления страницами, которые может видеть пользователь?Обычно я создаю пользовательский класс, реализующий интерфейс безопасности IPrincipal.При каждом запросе к вашему приложению вы проверяете права конкретного пользователя и выводите узлы SiteMap, разрешенные для этого пользователя.