У нас есть сайт интрасети 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 по-прежнему обслуживаются независимо от разрешения.