2013-04-01 81 views
0

我需要在會話超時時將用戶重定向到登錄頁面。 Global.asax中Session_End方法的問題如下:重定向到global.asax中Session_end的另一個頁面

  1. 它不支持Response.Redirect或Server.Transfer
  2. 任何嘗試使用HttpContext.Current.Response都會導致'對象引用未設置爲對象的實例'錯誤
第二個錯誤是可以理解的,因爲在會話超時之後,當前會話將被終止並設置爲空。
我想知道的是,是否可以將用戶直接(尤其是)從session_end重定向到另一個頁面。有些方法可以工作(不使用session_end方法),但它們都需要向服務器發送請求(例如刷新,我不想)。我可以做到這一點,而不使用JavaScript?(更重要的是,我應該?)
在此先感謝!

回答

1

是不是Session_End直接在服務器上產生,沒有任何來自用戶的交互?

當我進入你的頁面(並開始一個會話)時,會發生什麼情況?關閉瀏覽器窗口並永不返回?然後可以理解,HttpContext.Current.Response爲空。

+0

是的,它直接在服務器上產生。我提到的解決方案並沒有使用Session_end來實現。我也應該說明這一點。 爲了響應您的第二個查詢,應用程序將重新啓動。 – Shubhang

+1

然後,也許我會通過在客戶端腳本中使用長計時器來解決問題,例如,如果您的會話超時時間爲20分鐘,我會在現在刷新頁面20分鐘後在客戶端腳本中安排事件,這會導致登錄頁面。 – Axarydax

相關問題