解决方法
记住会话到期的诀窍是,这发生在幕后运行的工作进程中,并且没有直接的方式来通知用户而不返回服务器来检查事物的状态.
我所做的是让页面注册一个Javascript块,在指定的超时后将用户重定向到登录页面:
Page.ClientScript.RegisterStartupScript(Me.GetType,"TimeoutScript","setTimeout(""top.location.href = '~/Login.aspx'""," & ConfigurationManager.AppSettings("SessionTimeoutMilliseconds") & ");",True)
您会注意到我在web.config文件中存储了实际的毫秒数,以便我可以根据需要调整超时长度.
使用此功能,结合Global.asax文件中的典型Session_End事件,可以非常简洁地处理我的Web应用程序中的会话超时.