Ответ 1
На верхнем уровне web.config
может быть только <authentication />
. Возможно, вам придется создавать несколько приложений. т.е. вы можете создать приложение в приложении и использовать разные режимы аутентификации в каждом из них.
Как мне настроить различные теги аутентификации для разных частей моего веб-приложения? Скажем, у меня есть:
/
/folder1/
/folder2/
Можно ли указать разные теги <authentication/>
для каждой папки?
Я хочу, чтобы в папке1 использовалась проверка подлинности Windows, а в папке2 используется проверка подлинности с помощью форм.
Я пробовал делать в теге <location/>
, но он не похож на теги <authentication/>
в тегах <location/>
, по крайней мере, не через VS 2008 с его встроенным веб-сервером.
Это ошибки, говорящие - Ошибка 3. Ошибка использования раздела, зарегистрированного как allowDefinition = 'MachineToApplication', превышающего уровень приложения. Эта ошибка может быть вызвана тем, что виртуальный каталог не настроен как приложение в IIS.
<location path="/folder1">
<system.web>
<authentication mode="Forms" />
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
На верхнем уровне web.config
может быть только <authentication />
. Возможно, вам придется создавать несколько приложений. т.е. вы можете создать приложение в приложении и использовать разные режимы аутентификации в каждом из них.
Эти настройки действительны только на корневом уровне вашего приложения ASP.Net. Чтобы использовать разные настройки в подпапке, вам нужно перейти в IIS и установить эту подпапку в качестве нового приложения.
Как только вы это сделаете, папка будет иметь другой значок в менеджере II. Внутри вашей подпапки создайте новый файл web.config и добавьте туда новые параметры аутентификации.
Дополнительная информация доступна в Создание приложений.
Я думаю, вы можете установить авторизацию авторизации форм в папке 1 на
<allow users="*" />
затем управляйте доступом к окнам, установив права на окна в папке.
Я не пробовал, но я не могу придумать, почему это не сработает.