Программная установка авторизации ASP.NET для подкаталога в веб-приложении

У меня есть приложение ASP.NET, которое использует CreateUserWizard для регистрации новых пользователей. Частью моего процесса регистрации является создание «домашнего каталога» для пользователя, в который они смогут загружать файлы.

Я хотел бы использовать функции авторизации ASP.NET для ограничения доступа к «домашнему каталогу». Только зарегистрированный пользователь, назначенный каталогу, должен иметь доступ.

Думаю, я знаю, как это сделать декларативно с помощью Web.config. Я могу сделать что-то вроде следующего:

<?xml version="1.0"?>
<configuration>
.
.
<location path="UserHomeDirectories">
   <system.web>
     <authorization>
       <deny users="?"/>
     </authorization>
   </system.web>
</location>

<location path="UserHomeDirectories/MyUser">
   <system.web>
     <authorization>
       <allow users="MyUser"/>
       <deny users="*"/>
     </authorization>
   </system.web>
</location>
.
.
.

Этот пост почти отвечает на мой вопрос, но может ли кто-нибудь помочь мне в моей конкретной ситуации? Еще одна вещь: изменение Web.config не перезапускает приложение? (т.е. когда мой код в коде создания / авторизации каталога в моем CreatedUser обработчике событий класса CreateUserWizard запускается?)

Спасибо за помощь!


person Matt Crouch    schedule 12.02.2009    source источник


Ответы (1)


Вместо использования атрибута location в web.config всего приложения вы можете поместить новый в папку пользователя. В этом новом файле вы указываете правила авторизации для этой конкретной папки, и они переопределят правила для всего приложения.

Поскольку это не меняет ваш исходный web.config файл, ваше приложение не будет перезапущено.

person Tomas Aschan    schedule 12.02.2009