[英]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://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.