3

我有一个目录“d:/resources/xxxxx/file-name.xxx”,它存储文件类型:.png、.xml、.pdf,这些文件可以由网站访问。在 IIS 中设置了一个虚拟目录“资源”,它指向这个硬盘驱动器位置,以允许通过 http 请求访问 .png 图像,但我通过它们的硬盘驱动器引用 .pdf 和 .xml 文件地点。这些文件是工作流程的一部分,因此它们必须全部保留在其当前目录结构中。

需要允许 IIS 提供 .png 图像,但出于安全目的,我不希望允许它提供 .pdf 或 .xml 文件。

我尝试设置一个 http 处理程序,它本来可以正常工作,但我无法使路径足够具体。如果我将它设置为“/resources/*”,那么我需要手动输出允许的文件类型,这有点奇怪。我无法将路径设置为“*.pdf”,因为应该允许其他目录访问其 .pdf 文件。

如果有人试图访问“www.mysite.com/resources/dir/mypdf.pdf”或“.../myxml.xml”但仍然允许访问,我只是在寻找一种直接的方式来限制访问。 png 和所有其他可能提供的文件类型。

另外,请让我知道我是否以错误的方式进行此操作。

4

2 回答 2

4

尝试在结束标记之前添加它以进行配置,看看它是如何做的:

<location path="/resources">
    <system.webServer>
        <handlers>
            <add name="PdfForbiddenHandler" path="*.pdf" verb="*" type="System.Web.HttpForbiddenHandler" resourceType="File" preCondition="integratedMode" />
            <add name="XmlForbiddenHandler" path="*.xml" verb="*" type="System.Web.HttpForbiddenHandler" resourceType="File" preCondition="integratedMode" />
        </handlers>
    </system.webServer>
 </location>
于 2012-04-30T15:50:25.237 回答
1

要使用 IIS(7.x,经典模式)管理器 UI:

  1. 展开您的站点并选择“资源”目录。
  2. 功能视图中,双击处理程序映射
  3. 在网格中,找到名为“ StaticFile ”的模块映射,双击此项;
  4. 输入允许的文件扩展名,例如 *.png、*.gif 等。
  5. 单击确定。

在此处输入图像描述

于 2012-04-30T16:34:44.593 回答