【发布时间】:2013-09-05 02:59:02
【问题描述】:
我想在会话超时时自动重定向到登录页面。
在 web.config 文件中,我有以下代码
<configuration>
<system.web>
<sessionState mode="InProc" timeout="1"/>
</system.web>
</configuration>
在 Global.asax 文件中-
protected void Session_End(object sender, EventArgs e)
{
Response.Redirect("LoginPage.aspx");
}
但超时后,我收到以下错误:
HttpException 未被用户代码处理。
响应在此上下文中不可用。
有解决这个问题的线索吗?
【问题讨论】:
-
您应该在身份验证元素中执行此操作。而不是在代码中。
-
当您说会话超时时重定向到登录页面时,您的意思是您希望浏览器(客户端)从服务器事件触发自动重定向吗?如果是这样,这将需要的不仅仅是服务器代码,更多的是使用 SignalR 集线器来触发客户端 javascript 重定向
-
据我所知,
Session_End事件不会作为请求的一部分触发。当超时发生时,它会在后台触发。下次用户回来时,他将自动获得一个新会话,因为旧会话已超时。因此,当Session_End事件发生时,当前没有可以重定向的Response... -
这个related question 可能有帮助吗?