Множественные/разные настройки аутентификации в web.config

Как мне настроить различные теги аутентификации для разных частей моего веб-приложения? Скажем, у меня есть:

/
/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>

Ответы

Ответ 1

На верхнем уровне web.config может быть только <authentication />. Возможно, вам придется создавать несколько приложений. т.е. вы можете создать приложение в приложении и использовать разные режимы аутентификации в каждом из них.

Ответ 2

Эти настройки действительны только на корневом уровне вашего приложения ASP.Net. Чтобы использовать разные настройки в подпапке, вам нужно перейти в IIS и установить эту подпапку в качестве нового приложения.

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

Дополнительная информация доступна в Создание приложений.

Ответ 3

Я думаю, вы можете установить авторизацию авторизации форм в папке 1 на

<allow users="*" />

затем управляйте доступом к окнам, установив права на окна в папке.

Я не пробовал, но я не могу придумать, почему это не сработает.