На своем локальном компьютере я работаю на нескольких веб-сайтах и запускаю их под 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>
Что мне нужно сделать, чтобы мои сайты могли устанавливать свои собственные режимы аутентификации?