2017-05-28 96 views
-1

我有一個Asp.Net MVC應用程序。這只是一種方法,所以我不能提供代碼。Asp.Net顯示會話超時提醒

基本上我想實現的是如果會話結束在用戶所在的頁面上顯示警報。

enter image description here

從Azure中圖爲我想達到的目標(但這是更遠,我想顯示警告率先啓動)。

那麼是否有一個函數或任何由asp.net提供的檢測會話結束?其次,我將如何顯示警報?

回答

1

在asp.net中沒有通知用戶會話結束或即將結束的特定功能。但是這個功能現在在很多網站上都可以看到。 當收到回發請求時,會話由服務器啓動。在特定時間段內沒有用戶操作時,會話過期。您可以使用JavaScript警報來向用戶顯示有關會話超時的彈出窗口。

我會建議2種方式:

  1. 運行在客戶端的計時器,並通知用戶,當它即將到期。例如。如果您的會話超時時間爲5分鐘,您可能在4分鐘後通知用戶 會話將在1分鐘內過期,如果 不採取任何行動。
  2. 第二種方法是自動或當用戶點擊確定按鈕時向控制器發起回傳請求(您的會話很快就會過期,您將被註銷。您是否想要延長會話?) 想要延長會話嗎? )
2

不幸的是,這並沒有簡單的答案。原因是,如果您要ping服務器來檢查會話,那麼該操作實際上會更新會話超時,除非將服務配置爲不訪問會話 - 這意味着您需要另一個跟蹤機制。 「假」的方法是設置一個等於會話超時的JavaScript時間。您需要在任何ajax調用上重置該定時器。

更多涉及的解決方案是使用持續連接技術,如SignalR,通過session_timeout通知用戶。