Как мне установить разные теги аутентификации для разных частей моего веб-приложения? Скажем, у меня есть:
/
/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 на
<allow users = "*" />
затем управляйте доступом Windows, установив разрешения Windows для папки.
Я не пробовал, но не могу понять, почему это не сработает.
Эти настройки действительны только на корневом уровне вашего приложения ASP.Net. Чтобы использовать другие настройки в подпапке, вам нужно будет войти в IIS и установить в этой подпапке новое приложение.
Как только вы это сделаете, папка будет иметь другой значок в диспетчере IIs. Внутри подпапки создайте новый файл web.config и добавьте туда новые настройки аутентификации.
Более подробная информация доступна на Создание приложений.
Если вы используете встроенный веб-сервер Visual Studio, то да, вы правы, вам нужно будет настроить приложение в IIS.
Вы можете иметь <authentication /> только на верхнем уровне web.config. Возможно, вам придется создать несколько приложений. то есть вы можете создать приложение внутри приложения и использовать разные режимы аутентификации в каждом из них.
Верно, но похоже, что в отладчике VS2008 он не может обрабатывать эти подпапки как папки приложений, мне нужно будет протестировать, отправив на сервер IIS