На моей локальной машине я работаю на нескольких веб-сайтах и запускаю их в IIS на веб-сайте "По умолчанию". Таким образом, я могу получить доступ к сайтам с помощью этого типа URL: http://localhost/App1/. Здесь структура:
LocalDev (site) App1 (application) App2 (application) App3 (application)
Проблема, с которой я сталкиваюсь, заключается в том, что в App1 я пытаюсь включить проверку подлинности Windows в подкаталоге App1, например:
<configuration>
<location path="internal">
<system.web>
<authentication mode="Windows"/>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
</configuration>
К сожалению, когда я пытаюсь получить доступ к http://localhost/App1/internal/url.aspx, я получаю эту ошибку:
Ошибка использования раздела, зарегистрированного как allowDefinition = 'MachineToApplication', превышающего уровень приложения. Эта ошибка может быть вызвана тем, что виртуальный каталог не настроен как приложение в IIS.
App1
настраивается как приложение, а не виртуальный каталог. Я попытался изменить свой файл machine.config, чтобы разрешить изменение раздела аутентификации в любом месте:
<configuration>
<configSections>
<sectionGroup name="system.web" type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<section name="authentication" type="System.Web.Configuration.AuthenticationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="Everywhere"/>
</sectionGroup>
</configSections>
</configuration>
Что мне нужно сделать, чтобы мои сайты могли устанавливать свои собственные режимы аутентификации?