小编Qua*_*137的帖子

子文件夹中忽略ASP.NET web.config授权设置

我正在使用asp.net mvc 2和vs 2008.

我正在尝试使用表单授权制作网站.当我试图限制访问某些页面时,我正在使用asp.net管理工具.例如,我创建了规则,拒绝访问整个网站的匿名用户.正如预期的那样,管理工具在根web.config文件中添加了以下部分:

 <authorization>
   <deny users="?" />
  </authorization>
Run Code Online (Sandbox Code Playgroud)

当我在某个子文件夹中执行相同的操作时,例如%ApplicationRoot%/ View/Protected,管理工具,如预期的那样,在所提到的子文件夹中添加web.config文件,使用以下代码:

 <configuration>
<system.web>      
    <authorization>
        <deny users="UserName" />
    </authorization>
</system.web>
Run Code Online (Sandbox Code Playgroud)

theese文件之间的主要区别在于root web.config授权部分有一些效果(一般来说,它按计划工作 - 拒绝来自整个网站的所有未经身份验证的用户).但是子文件夹web.config授权部分根本没有任何效果.我发现然后添加到root配置文件,代码如下

 <location path="Protected">
  <authorization>
    <deny users="UserName" />
   </authorization>
 </location>
Run Code Online (Sandbox Code Playgroud)

做得很好 - 它按计划拒绝%UserName%访问所有视图,位于%ApplicationRoot%/ View/Protected Folder中.
这个行为与卡西尼和iis相似,我试过这两个.

主要的问题是我需要善良的管理工具来完成工作,所以我要求任何有关问题的帮助 - 为什么当web.config位于子文件夹中时授权部分不起作用?

PS我试图把不正确的代码之间<authorization>,并</authorization>在子文件夹中的web.config:

  <authorization>
    asdfg
   </authorization>
Run Code Online (Sandbox Code Playgroud)

没有效果.由于某些问题,整个部分可能会被忽略?

PPS同一文件中授权部分的错误代码会导致错误

asp.net asp.net-mvc authorization asp.net-mvc-2

7
推荐指数
1
解决办法
1879
查看次数