繁体   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