У меня есть собственный ролевой провайдер, работающий со стандартной картой сайта asp и управлением меню У меня включено защитное тримминг, и пункты меню успешно исчезают / появляются снова, когда я изменяю файл web.config следующим образом:
<location path="x/y/z.aspx">
<system.web>
<authorization>
<allow roles="a, b, c" />
<deny users="*" />
</authorization>
</system.web>
</location>
но, к сожалению, всякий раз, когда я захожу на такую страницу, мне показывается самое простое «500 - Внутренняя ошибка сервера».
Если я удаляю вышеуказанные строки из конфига, такая ошибка не возникает (но у всех есть доступ к странице!)
Может ли это быть связано с моим пользовательским ролевым провайдером? Кажется, работает со всем остальным! Я только переопределил функции IsUserInRole и GetRolesForUser (все другие обязательные функции я ничего не возвращаю или пустые массивы и т. Д.).
Спасибо! :)
EDIT:
Я почти уверен, что это не мой пользовательский поставщик ролей, вызывающий ошибку ... В другом месте моего web.config есть следующее.
<location path="." inheritInChildApplications="false">
Основная часть моего конфига содержалась в этом разделе, идея в том, что все мои appSettings, sessionState, параметры аутентификации и т. Д. Не будут наследоваться в другие приложения, настроенные в IIS, но которые содержались в подпапках приложения I. работаю сейчас. Возможно, внутри этого «местоположения» есть разделы, которые не переносятся в другие «местоположения» (даже если они не являются дочерними приложениями! вышеупомянутое «местоположение» за пределами этого раздела, все снова работает! Есть ли способ получить лучшее из обоих миров?