利用asp.net 2.0的form验证可以轻松的实现网站权限的一般管理。

可是往往会出现一些问题,当然这些问题不会被人们注意到。

我们在配置form验证的时候往往直接将

<authorization>
   <deny users="?"/>
  </authorization>

配置节点放在在根目录下面的web.config中,这样的话就会出现一些问题:

1、如果您做了一个登录页面引用了"根目录\images\"的图片,那么可能出现图片无法显示的问题。
2、对于"根目录\xxxx\"引用的一些css,js脚本等信息也会无法得到。
3、如果调用了主题,也可能无法访问。

其实这些问题归结起来是您没有访问这些资源的权限。

form验证的authorization配置采用向下继承的规则,所以,如果您没有登录,那么肯定没有权限访问这些引用文件。解决方法最为简单的就是放弃在根目录下面的web.config里面配置authorization节点。而将配置节点放置在真正需要验证的目录下的web.config里面。这样就可以解决这个问题。一般没有人会把所有的页面文件都放置在根目录吧!

如果您放置了,那么您就必须Global.asax里面Application_Start里面编写代码移除相应文件夹的form验证必要性!

相关文章: