【问题标题】:Activate form authentication for CSV files in IIS7在 IIS7 中激活 CSV 文件的表单身份验证
【发布时间】:2010-09-28 15:04:15
【问题描述】:

我在 IIS 7 上有一个网站。该网站有一个带有 AuthorizeRequest 事件处理程序的 HttpModule。 CSV 文件不会触发此事件,我无需登录即可访问该文件,我猜这是因为 IIS7 未配置为要求对 CSV 文件进行表单验证。

如何设置?

【问题讨论】:

    标签: asp.net iis-7 httpmodule


    【解决方案1】:

    这将影响所有文件,但您可以将映射添加到您的服务器配置:

    1. 转到您网站的属性并单击“处理程序映射”。
    2. 点击右上角的“添加模块映射”。
    3. 将“*.csv”放入请求路径。
    4. 为模块选择“IsapiModule”。
    5. 在 Executable 下您正在使用的相应 .net 框架的 framework 文件夹中找到 aspnet_isapi.dll。
    6. 给它一个名字。
    7. 查看“请求限制”中的选项卡以获取更多选项。

    这将强制任何 .csv 请求在处理请求之前通过 asp.net 进行解析(从而调用表单身份验证)。

    编辑:或者,您可以添加通配符脚本映射,如下所述:http://learn.iis.net/page.aspx/508/wildcard-script-mapping-and-iis-7-integrated-pipeline/

    这将强制对所有非 .net 文件(pdf、文档等)进行身份验证。

    【讨论】:

    • 我仍然可以在没有身份验证的情况下访问该文件,并且 AuthorizeRequest 没有被触发...你能想到什么我可以检查的吗?
    • 这里给出的建议只有在您的应用程序池在经典模式下运行时才有效,如果您的应用程序池在集成模式下运行,您可能希望为所有请求启用表单身份验证和您的模块。见:learn.iis.net/page.aspx/244/…
    • @CarlosAg - 你也应该把它作为答案,以防它被证明是 OPs 解决方案。
    • 您好,我的应用程序池正在经典模式下运行。尝试添加通配符,现在当我询问 csv 文件时,会弹出一个“Windows 安全性”窗口询问用户和密码,在我看来,它使用的是 Windows 身份验证而不是表单身份验证。我可能在尝试解决问题时更改了某些内容...
    • @Lince81 - 您使用的是什么版本的 .Net?
    【解决方案2】:

    这个answer 解释了如何实现我正在寻找的东西。 我在 web.config 中插入了参考指南第 3 章和第 4 章中的行,并且 将“.htm”更改为“.csv”,也许有人可以优化 *.csv 文件的解决方案。但对我来说,它可以满足我的需要。

    【讨论】:

      猜你喜欢
      • 2012-03-05
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多