У нас есть сайт интрасети IIS7, работающий по интегрированному конвейеру, в основном ASP.Net с несколькими унаследованными классическими страницами ASP.Сайт разрешает анонимный доступ к большинству областей, но использует проверку подлинности Windows для защиты определенных папок.Запросы к страницам ASP.Net в защищенных папках ведут себя ожидаемым образом (их могут видеть авторизованные пользователи, другим отказано), но любой пользователь может видеть любую классическую страницу ASP в защищенных папках независимо от разрешений.
Я подозреваю, что модуль проверки подлинности Windows не вызывается для запросов к классическим страницам ASP.Мы работаем в режиме интегрированного конвейера, и я нашел эту статью (http://learn.iis.net/page.aspx/244/how-to-take-advantage-of-the-iis7-integrated-pipeline/)), которая указывает, что вам нужно явно удалять и повторно добавлять модули, если вы хотите использовать преимущества интегрированного конвейера для не-ASP.Netзапросы. Я попытался скопировать только пример статьи, заменив FormsAuthenticationModule на WindowsAuthenticationModule, добавив в web.config в корне приложения следующее:
<system.webServer>
<modules>
<remove name="WindowsAuthentication" />
<add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="" />
</modules>
</system.webServer>
Однако классические страницы ASP по-прежнему обслуживаются независимо от разрешения.