2015-04-02 78 views
0

如果用戶被重定向到某個頁面,我需要清除存儲在其中的一些會話數據。檢查用戶是否離開使用ASP.NET的頁面

我發現這個職位在那裏我可以看到可能的解決方案:https://stackoverflow.com/a/20283726/3917754

但這裏是一個問題 - 我必須輸入頁面名稱,根據答案。所以輸入所有頁面名稱我不認爲是很好的解決方案。

有沒有人有一些想法如何檢查用戶是否離開頁面刪除會話。它必須是服務器端代碼。

+0

您可以在'onpageshow'上使用該功能。參考可以在這裏找到(http://www.w3schools.com/tags/ev_onpageshow.asp) – 2015-04-02 10:03:44

+0

你可以使用Page_Unload事件來清除會話變量,當用戶離開頁面時 – Sandeep 2015-04-02 10:04:07

+0

@Sandeep,每次都有'Page_Unload'我刷新頁面? – demo 2015-04-02 10:09:32

回答

0

你也可以這樣做:

在每一頁上,定義了下面的腳本代碼(或母版頁定義它):

window.onbeforeunload = confirmExit; 

      function confirmExit() { 
       var url = '<%: ResolveUrl("~/DeleteSessionAjaxHandler.ashx") %>' 
       $.ajax({ 
        url: url, 
        type: "POST", 
        async: false, 
        data: {}, 
        success: function(data) {} 
       }); 
      } 

創建DeleteSessionAjaxHandler.ashx處理程序,並刪除裏面的對話。

public class DeletedSessionAjaxHandler: IHttpHandler, IRequiresSessionState 
    { 
     public override void ProcessRequest(HttpContext context) 
     { 
      //Session delete code 
     } 
    } 
+0

每當你去到另一個頁面時,js會被觸發。 – Maris 2015-04-02 13:26:22