我正在使用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同一文件中授权部分的错误代码会导致错误