mot*_*deh 17 asp.net web-config
在本地机器上,我在mvc4(razor)上创建了示例项目,并创建了名为"x"的目录,并在其中放置了一个文本文件"a.txt".
http://localhost:64471/x/a.txt
Run Code Online (Sandbox Code Playgroud)
在我的网络配置中,我拒绝所有用户通过此配置访问"x"文件夹:
<location path="x">
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
Run Code Online (Sandbox Code Playgroud)
现在,如果用户发送此请求:
http://localhost:64471/x/
Run Code Online (Sandbox Code Playgroud)
它工作并将用户返回到web配置中的forms标签中定义的URL.
但是当用户发送此请求时:
http://localhost:64471/x/a.txt
Run Code Online (Sandbox Code Playgroud)
可以在浏览器中读取文本文件(浏览器显示文本文件的内容).
我想知道如何拒绝用户访问"x"文件夹中的所有文件和子文件夹?
Jer*_*emy 12
我知道这是一个老问题,但是如果你遇到问题并处理文本或html文件,你可能想要参考这个 stackoverflow问题.
简而言之,您可能需要将其添加到web.config:
<system.webServer>
<modules>
<remove name="UrlAuthorization" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
</modules>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
正如kirk指出的那样,.txt和.html文件等文件由IIS而不是ASP.NET处理,因此授权规则不适用于它们.
我path="x"在root web.config中测试过.它限制x文件夹下的所有内容; 它甚至不会让我浏览〜/ x.我被重定向到登录页面.
你可以在root web.config中尝试像这样的完整路径到a.txt吗?
<location path="x/a.txt">
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
如果它仍然不起作用,您可以尝试使用以下内容在x文件夹中创建web.config.
<?xml version="1.0"?>
<configuration>
<location path="a.txt">
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
</location>
</configuration>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13647 次 |
| 最近记录: |