当网站表单身份验证超时时,我可以重定向到自定义页面而不是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 statusCode进行自定义错误,但它无法正常工作。它总是回到Login.aspx。
答案 0 :(得分:1)
当你的会话超时时,在服务器端它是已知的,但客户端即浏览器,由于任何原因,不知道会话何时到期,因此在下一个请求之前不会处理任何内容通过做一些活动来完成。那时会发现会话已经过期,然后尝试重新登录。
所以,我们的想法是开发一个解决方案,它将跟踪客户端(浏览器)的超时值,并对服务器端进行适当的更新。使用客户端脚本将服务器超时与客户端超时同步。
然后,您可以向用户显示有关会话即将到期的警告/通知,并强制他们与之交互。详细阅读 this article 。