2012-04-30 48 views
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和所有其他可能的文件類型。

另外,請讓我知道,如果我是這樣做的所有錯誤的方式。

+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

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

  1. 展開您的站點並選擇「資源」目錄。
  2. 功能查看,雙擊處理程序映射
  3. 在網格中,找到名爲'StaticFile'的模塊映射,雙擊該項;
  4. 輸入允許的文件擴展名,例如* .png,* .gif等
  5. 單擊確定。

enter image description here

相關問題