日期:2014-05-18  浏览次数:20377 次

使用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 code

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
   <authorization><allow users="*"/></authorization> 
 </system.web>
</configuration>

------解决方案--------------------
还是3楼的兄弟耐心,把具体设置方法都给出来了。

其实还有一个办法,就是在IIS中把图片类型的扩展名与ASP.NET handler的映射给解除掉。这样图片会作为静态资源被访问到,不需要通过授权了。这样做对服务器性能也会有改善。缺点就是如果你确实想保护图片不受未授权的用户访问的话,反而做不到了。
------解决方案--------------------
webconfig里加个节点.这样就行了.

XML code

<location path="images">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

------解决方案--------------------
XML code

<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文件夹权限,就可以了。