当前位置:编程学习 > C#/ASP.NET >>

设置authentication mode="Forms"后如何设置某类文件跳过验证

我在web.config文件中配置为了使用forms身份验证:
<authentication mode="Forms">
   <forms loginUrl="Login.aspx" name=".ASPXAUTH"></forms>
</authentication>
设置了所有页面必须登陆才能访问:
<authorization>
   <deny users="?"/>
</authorization>
因为登陆界面上的图片也一同禁止访问了,就在configuration节点下添加了如下内容:
<location path="images">
   <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
   </system.web>
</location>
项目原先是使用的session来验证的,改成forms身份验证后,一些后台处理页面(ashx)在登陆超时的时候访问会跳转到login.aspx,导致前台js出现错误.我想取消ashx类型文件的身份验证,加了这个代码:
<location path="*.ashx">
   <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
   </system.web>
</location>
结果提示:<location> 路径属性必须为相对虚拟路径。它不能包含“?”、“:”、“\”、“*”、“"”、“<”、“>”或“|”中的任何一个。
看来这条路行不通了。
问下大家,我想取消所有ashx页面、保留其它页面的身份验证(目前各个ashx是单独进行的验证,方便在未登录的时候显示提示信息),应该如何做,或者还有没有其它更好的办法? --------------------编程问答--------------------
引用 楼主 robotbo 的回复:
我在web.config文件中配置为了使用forms身份验证:
<authentication mode="Forms">
   <forms loginUrl="Login.aspx" name=".ASPXAUTH"></forms>
</authentication>
设置了所有页面必须登陆才能访问:
<authorization>
   <deny users="?"/>
</authorization>
因为登陆界面上的图片也一同禁止访问了,就在configuration节点下添加了如下内容:
<location path="images">
   <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
   </system.web>
</location>
项目原先是使用的session来验证的,改成forms身份验证后,一些后台处理页面(ashx)在登陆超时的时候访问会跳转到login.aspx,导致前台js出现错误.我想取消ashx类型文件的身份验证,加了这个代码:
<location path="*.ashx">
   <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
   </system.web>
</location>
结果提示:<location> 路径属性必须为相对虚拟路径。它不能包含“?”、“:”、“\”、“*”、“"”、“<”、“>”或“|”中的任何一个。
看来这条路行不通了。
问下大家,我想取消所有ashx页面、保留其它页面的身份验证(目前各个ashx是单独进行的验证,方便在未登录的时候显示提示信息),应该如何做,或者还有没有其它更好的办法?


可以把允许的文件放到一个文件夹当中!操作这个文件夹的权限! --------------------编程问答--------------------
引用 1 楼 hou306010849 的回复:
Quote: 引用 楼主 robotbo 的回复:

我在web.config文件中配置为了使用forms身份验证:
<authentication mode="Forms">
   <forms loginUrl="Login.aspx" name=".ASPXAUTH"></forms>
</authentication>
设置了所有页面必须登陆才能访问:
<authorization>
   <deny users="?"/>
</authorization>
因为登陆界面上的图片也一同禁止访问了,就在configuration节点下添加了如下内容:
<location path="images">
   <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
   </system.web>
</location>
项目原先是使用的session来验证的,改成forms身份验证后,一些后台处理页面(ashx)在登陆超时的时候访问会跳转到login.aspx,导致前台js出现错误.我想取消ashx类型文件的身份验证,加了这个代码:
<location path="*.ashx">
   <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
   </system.web>
</location>
结果提示:<location> 路径属性必须为相对虚拟路径。它不能包含“?”、“:”、“\”、“*”、“"”、“<”、“>”或“|”中的任何一个。
看来这条路行不通了。
问下大家,我想取消所有ashx页面、保留其它页面的身份验证(目前各个ashx是单独进行的验证,方便在未登录的时候显示提示信息),应该如何做,或者还有没有其它更好的办法?


可以把允许的文件放到一个文件夹当中!操作这个文件夹的权限!

关键是我在原来的系统上修改的,各个文件夹下都有ashx类型的页面,这样移动工作量好大。能不能有稍微简单一点的办法。 --------------------编程问答-------------------- 自己顶一下。。 --------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,