首页 文章

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

提问于
浏览
6

我们有一个 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/)表明,如果要利用 non-ASP.Net 请求的集成管道,则需要显式删除和 re-add 模块。我试图通过将以下内容添加到应用程序根目录的 web.config 来复制文章示例,仅将 FormsAuthenticationModule 替换为 WindowsAuthenticationModule:

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

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

1 回答

  • 3

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

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

    这也可能对你有所帮助:
    IIS7:在 IIS6 中设置集成 Windows 身份验证

相关问题