C# 保护目录中某些文件类型不被服务的最佳方法
我有一个目录“d:/resources/xxxxx/file name.xxx”,其中存储的文件类型为:.png、.xml、.pdf,可通过网站访问。IIS“resources”中设置了一个虚拟目录,它指向这个硬盘驱动器位置,允许通过http请求访问.png图像,但我是根据.pdf和.xml文件的硬盘驱动器位置引用它们。这些文件是工作流过程的一部分,因此它们必须全部保留在其当前目录结构中 需要允许IIS提供.png图像,但出于安全目的,我不希望允许它提供.pdf或.xml文件 我试着设置一个http处理程序,这本可以很好地工作,但我无法使路径足够具体。如果我将其设置为“/resources/*”,那么我需要手动输出允许的文件类型,这有点不可靠。我无法将路径设置为“*.pdf”,因为应该允许其他目录访问它们的.pdf文件 如果有人试图访问“www.mysite.com/resources/dir/mypdf.pdf”或“../myxml.xml”,但仍然允许提供.png和所有其他可能的文件类型,我只是在寻找一种直接的方法来限制访问C# 保护目录中某些文件类型不被服务的最佳方法,c#,iis-7.5,asp.net-3.5,file-security,C#,Iis 7.5,Asp.net 3.5,File Security,我有一个目录“d:/resources/xxxxx/file name.xxx”,其中存储的文件类型为:.png、.xml、.pdf,可通过网站访问。IIS“resources”中设置了一个虚拟目录,它指向这个硬盘驱动器位置,允许通过http请求访问.png图像,但我是根据.pdf和.xml文件的硬盘驱动器位置引用它们。这些文件是工作流过程的一部分,因此它们必须全部保留在其当前目录结构中 需要允许IIS提供.png图像,但出于安全目的,我不希望允许它提供.pdf或.xml文件 我试着设置一个ht
另外,请让我知道我是否做得不对。尝试将此添加到配置的结束标记之前,并查看它是如何完成的:
<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>
要使用IIS(7.x,经典模式)管理器UI:
我认为最好的办法是把它们存放在别处。因为所有权限或配置文件都可能丢失。这是常有的事。