簡體   English   中英

如何在Web.Config中禁用目錄瀏覽

[英]How to disable Directory Browse in Web.Config

我有一個WebSite,我喜歡來自web.config文件的 拒絕目錄瀏覽器

這里我使用的代碼放在ROOT中。 不行。 我正在本地測試它所以使用URL LIKE http:// localhost:3214 /我仍然可以瀏覽CMS的目錄。

  • 我做錯了什么?
  • 它應該在本地機器上工作嗎?

謝謝你的支持!

<configuration>
  <location path="Cms">
    <system.webServer>
      <directoryBrowse enabled="false" />
    </system.webServer>
  </location>
</configuration>

一些資源:

http://blogs.iis.net/bills/archive/2008/03/24/how-to-enable-directory-browsing-with-iis7-web-config.aspx

http://www.expta.com/2008/03/configuring-virtual-directories-with.html

首先:並非所有內容都在<location>塊中運行。

我找不到在<location>不支持<system.webServer>的肯定聲明,但我找不到任何建議允許它的情況。 這方面的證據是在(global) machine.config ,其中system.webserver部分被定義為使用IgnoreSection處理程序:ie。 它不是由標准的System.Configuration實現處理的,而是為<location>提供支持的配置處理的標准實現。

嘗試使用directoryBrowse元素將web.config添加到Cms文件夾中,以確認瀏覽已被阻止。

Gibbok,這里沒什么不對,不要驚慌:)

假設您正在從Visual Studio內置的服務器瀏覽您的網站,這通常是正常情況。

我很確定如果你使用上面的代碼移動到IIS,目錄瀏覽的行為就像你想要的那樣。

嘗試在IIS中托管這個網站,讓我們知道發生了什么,謝謝。

<directoryBrowse>指令僅通過http協議控制目錄列表:http: //msdn.microsoft.com/en-us/library/ms691327%28v=vs.90%29.aspx

它不會對代碼產生任何影響,試圖從任何其他(甚至您自己的)應用程序中訪問該目錄。

@Edit:在編輯之后如果我說對了 - 我想, Deny Directory Browser的意思是預期的功能:使用瀏覽器在指定路徑中顯示目錄的內容。 是的,它可能無法在本地開發服務器上運行。 在IIs上嘗試吧!

我正在嘗試相同的代碼。 你所擁有的其實是正確的。 這是參考

當然它不適合我,我無法弄清楚為什么,直到我閱讀理查德的帖子並記得有人在該目錄中放置了一個web.config文件。 該文件將覆蓋主web.config文件中的行為。 在子目錄web.config中,顯式啟用了directoryBrowse選項(以及許多其他處理程序,yikes!)。 刪除該文件以及上面的內容對我有用。 它實際上將請求傳遞給下一個處理程序,這正是我想要的。

我在本地計算機上使用IIS 7。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM