如何最好地检测 ASP.NET 过期会话?
Posted
技术标签:
【中文标题】如何最好地检测 ASP.NET 过期会话?【英文标题】:How do I best detect an ASP.NET expired session? 【发布时间】:2010-09-05 10:52:26 【问题描述】:我需要在我的 Visual Basic Web 应用程序中检测会话何时过期。这就是我正在使用的......
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If CurrentSession.IsNew AndAlso (Not Page.Request.Headers("Cookie") Is Nothing) AndAlso (Page.Request.Headers("Cookie").IndexOf("ASP.NET_SessionId") >= 0) Then
Response.Redirect("TimeOut.aspx")
End If
...do something...
End Sub
注意:CurrentSession.IsNew
返回HttpContext.Current.Session.IsNewSession
这对于 Internet Explorer 似乎很有效,但对于 Firefox 似乎失败了。
【问题讨论】:
您可以使用 Global.asax 中的 Session_End 函数吗? http://articles.techrepublic.com.com/5100-10878_11-5771721.html 我目前只在 global.asax 文件中使用 Application_Error 事件。也许我的会话处理也属于那里。但是,如何在请求的页面加载时使用它? 【参考方案1】:试试下面的
If Session("whatever") IsNot Nothing Then
【讨论】:
以上是关于如何最好地检测 ASP.NET 过期会话?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用httpcontext在asp.net中显示会话过期的消息
如果会话过期,如何自动重定向? ASP.Net(从 SessionTimeout.aspx 到 Timeout.aspx)