2008-08-06 20 views
8

Tôi cần phát hiện thời điểm phiên đã hết hạn trong ứng dụng web Visuial Basic của tôi. Đây là những gì tôi đang sử dụng ...Làm thế nào để phát hiện tốt nhất một phiên hết hạn ASP.NET?

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 

Lưu ý:CurrentSession.IsNew lợi nhuận HttpContext.Current.Session.IsNewSession

Điều này dường như làm việc tốt cho Internet Explorer, nhưng dường như thất bại với Firefox.

+0

Bạn có thể làm việc với các chức năng Session_End trong Global.asax? [http://articles.techrepublic.com.com/5100-10878_11-5771721.html] (http://articles.techrepublic.com.com/5100-10878_11-5771721.html) –

+0

Tôi hiện chỉ đang sử dụng Sự kiện Application_Error trong tệp global.asax. Có lẽ xử lý phiên của tôi cũng thuộc về đó. Nhưng, làm cách nào để sử dụng tính năng này trên tải trang được yêu cầu? –

Trả lời

7

Hãy thử như sau

If Session("whatever") IsNot Nothing Then