使用Form权限验证,但是登陆页面内中的图片居然都不显示
我使用Form验证,但是登陆页面内中的图片居然都不显示,路径绝对没有问题,因为在设计视图中都可以显示.
web.config中的代码是这样的:
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXAUTH" protection="All" timeout="20"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
进入Login.aspx页面,图片全显示为叉叉,很郁闷,登陆成功以后,点后退,到Login.aspx页面居然又可以显示图片
,请问各位大侠是什么原因.
3Q
[解决办法]
因为你拒绝了所有的匿名用户访问你的资源
<deny users="?" />
现在用户连注册都没机会了
1、 新建一个目录 Public ,用于存放一些公用的文件,如你Login.aspx中所有的图片
2、 右击点击目录 Public ,新增一个 Web.config
内容如下:
<?xml version="1.0" encoding="utf-8"?><configuration> <system.web> <authorization><allow users="*"/></authorization> </system.web></configuration>
[解决办法]
还是3楼的兄弟耐心,把具体设置方法都给出来了。
其实还有一个办法,就是在IIS中把图片类型的扩展名与ASP.NET handler的映射给解除掉。这样图片会作为静态资源被访问到,不需要通过授权了。这样做对服务器性能也会有改善。缺点就是如果你确实想保护图片不受未授权的用户访问的话,反而做不到了。
[解决办法]
webconfig里加个节点.这样就行了.
<location path="images"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location>
[解决办法]
<location path="xxx.css"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location> <location path="images"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location>
[解决办法]
Web.config中配置授权给那些被限制的文件夹images或css文件夹权限,就可以了。