Несколько / разные параметры аутентификации в web.config - PullRequest
14 голосов
/ 25 ноября 2008

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

/
/folder1/
/folder2/

Можно ли указать разные <authentication/> теги для каждой папки?

Я хочу, чтобы folder1 использовал аутентификацию Windows, но folder2 использовал аутентификацию Forms.

Я попытался сделать это в теге <location/>, но не похоже, что вы можете иметь теги <authentication/> в тегах <location/>, по крайней мере, не в VS 2008 со встроенным веб-сервером.

Это сообщение об ошибке - Ошибка 3 Использование раздела, зарегистрированного как allowDefinition = 'MachineToApplication', выходит за пределы уровня приложения. Эта ошибка может быть вызвана тем, что виртуальный каталог не настроен как приложение в IIS.

<location path="/folder1">
    <system.web>
      <authentication mode="Forms" />
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>

Ответы [ 3 ]

11 голосов
/ 26 ноября 2008

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

1 голос
/ 26 ноября 2008

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

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

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

0 голосов
/ 26 ноября 2008

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

<allow users="*" />

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

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

...