我有一个目录“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以及所有其他可能的文件类型。
另外,如果我错误地解决这个问题,请告诉我。
答案 0 :(得分: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>
答案 1 :(得分:1)
使用IIS(7.x,经典模式)Manager UI: