2013-09-16 33 views
1

当网站表单身份验证超时时,我可以重定向到自定义页面而不是Login.aspx页面吗?我有非常标准的表单身份验证与web.config中的以下代码。表单验证超时时如何重定向到自定义页面?

<forms loginUrl="Login.aspx" timeout="25" slidingExpiration="true" cookieless="UseCookies" defaultUrl="Default.aspx"/> 

    <customErrors mode="On" defaultRedirect="ErrorPage.aspx"> 
     <error statusCode="401" redirect="TimedOutErrorPage.aspx" /> 
    </customErrors> 

    <location path="TimedOutErrorPage.aspx"> 
    <system.web> 
     <authorization> 
      <allow users="?"/> 
     </authorization> 
    </system.web> 
</location> 

我试图让401状态码有一个自定义错误,但它不能正常工作。它总是返回到Login.aspx。

回答

1

当您的会话超时时,在服务器端它是已知的,但客户端即浏览器,不知道何时会话过期,出于任何原因,因此不会处理任何内容,直到下一个请求是通过做一些活动来完成的。那时候会发现会话已经过期,然后尝试重新登录。

所以,这个想法是开发一个解决方案,它将跟踪客户端(浏览器)上的超时值,并对服务器端进行适当的更新。使用客户端脚本将服务器超时与客户端超时同步。

然后,您可以向用户显示关于会话过期的警告/通知,并强制他们与其交互。阅读this article这样做的详细信息。

相关问题