我正在使用 asp.net mvc 2 和 vs 2008。
我正在尝试使用表单授权制作网站。当我试图限制对某些页面的访问时,我正在使用 asp.net 管理工具。例如,我创建规则以拒绝匿名用户访问整个网站。正如预期的那样,管理工具在根 web.config 文件中添加了以下部分:
<authorization>
<deny users="?" />
</authorization>
当我在某个子文件夹中执行相同操作时,例如 %ApplicationRoot%/View/Protected,管理工具也如预期的那样在提到的子文件夹中添加 web.config 文件,代码如下:
<configuration>
<system.web>
<authorization>
<deny users="UserName" />
</authorization>
</system.web>
这些文件之间的主要区别在于 root web.config 授权部分有一些效果(一般来说,它按计划工作 - 拒绝来自整个网站的所有未经身份验证的用户)。但是子文件夹 web.config 授权部分根本没有效果。我发现然后添加到根配置文件,下面的代码
<location path="Protected">
<authorization>
<deny users="UserName" />
</authorization>
</location>
做得很好 - 它按计划拒绝 %UserName% 访问位于 %ApplicationRoot%/View/Protected 文件夹中的所有视图。
这种行为与 cassini 和 iis 相似,我都尝试过。
主要问题是我需要一种管理工具来完成这项工作,所以我寻求任何有关问题的帮助 - 为什么当 web.config 位于子文件夹中时授权部分不起作用?
PS 我试图在子文件夹的 web.config之间<authorization>
和中放置不正确的代码:</authorization>
<authorization>
asdfg
</authorization>
没有效果。由于某些问题,可能整个部分都被忽略了?
PPS 同一文件中授权部分的代码不正确会导致错误