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