Windows身份验证不适用于传统ASP页面(但适用于同一站点中的ASP.Net页面)

时间:2011-08-16 17:30:46

标签: iis-7 asp-classic windows-authentication

我们有一个IIS7内部网站点在集成管道下运行,主要是ASP.Net,带有一些传统的经典ASP页面。该站点允许匿名访问大多数区域,但使用Windows身份验证来保护某些文件夹。对受保护文件夹中的ASP.Net页面的请求按预期运行(授权用户可以看到它们,其他人被拒绝),但任何用户都可以在受保护文件夹中看到任何经典ASP页面,无论权限如何。

我怀疑没有为经典ASP页面的请求调用Windows身份验证模块。我们正在以集成管道模式运行,我发现这篇文章(http://learn.iis.net/page.aspx/244/how-to-take-advantage-of-the-iis7-integrated-pipeline/)表明,如果要利用非ASP.Net的集成管道,则需要显式删除和重新添加模块要求。我试图复制文章的示例,只是将WindowsAuthenticationModule替换为FormsAuthenticationModule,方法是将以下内容添加到应用程序根目录的web.config中:

<system.webServer>
<modules>
        <remove name="WindowsAuthentication" />
        <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="" />
</modules>
</system.webServer>

但是,无论是否允许,仍然会提供传统的ASP页面。

1 个答案:

答案 0 :(得分:3)

经典ASP网页完全忽略web.config或任何.config

为经典ASP处理此问题的唯一方法是通过IIS,您必须将经典ASP页面移动到单独的虚拟网站下,然后为该虚拟网站设置Windows身份验证并禁用匿名访问。

这也可能对你有所帮助:
IIS7: Setup Integrated Windows Authentication like in IIS6