【发布时间】:2011-04-16 03:58:48
【问题描述】:
如何在 asp.net 中限制文件夹访问 就像我不希望任何其他人通过链接在浏览器中看到我的上传文件夹http://www.example.com/Uploads
【问题讨论】:
-
这个的默认设置应该是不可浏览的
如何在 asp.net 中限制文件夹访问 就像我不希望任何其他人通过链接在浏览器中看到我的上传文件夹http://www.example.com/Uploads
【问题讨论】:
您应该在该文件夹中添加一个 web.config 文件,并在文件中添加一个<authorization> 标签,如described here。
【讨论】:
您可以在 IIS 设置中管理文件夹浏览。,
打开 IIS 管理器并导航到要管理的文件夹。
在功能视图中,双击目录浏览。
在“操作”窗格中,单击启用/禁用。
这是为 IIS7 准备的。
你也可以使用命令行。
appcmd set config /section:directoryBrowse /enabled:true|false
希望这会有所帮助...
快乐编程,
【讨论】:
您可以像@klausbyskov 提到的那样,将<authorization /> 添加到根 web.config 中,例如:
<location path="Admin">
<system.web>
<authorization>
<allow roles="Administrator"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
或者您可以将 web.config 添加到您要允许/拒绝访问的文件夹中,其中包含以下内容:
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="Administrator"/>
<deny users="*" />
</authorization>
</system.web>
</configuration>
当然用你自己的规则替换<allow />和<deny />
【讨论】:
对于下一代来说,对我有用的答案是使用隐藏段。
如果您想确保安全,例如Uploads 文件夹转到您的根 Web.config 并添加到 <system.webServer> 以下元素:
<security>
<requestFiltering>
<hiddenSegments>
<add segment="Uploads"/>
</hiddenSegments>
</requestFiltering>
</security>
这将阻止所有用户直接访问 Uploads 文件夹及其内容。
【讨论】:
<add segment="plugins"/> 那么路径/assets/javascript/plugins/myfile.js 将被限制。