2010-06-09 153 views
0

我想清除頁面卸載時的會話。在ASP.Net中清除會話

這裏有一個條件:

  • 如果用戶從頁面前進到同一站點會話頁面B必須無法清關。
  • 如果用戶關閉瀏覽器窗口或Tab(關閉站點),則必須清除會話。

我已經嘗試使用AJAX PageMethod來調用服務器端過程從客戶端腳本中刪除會話。但該過程沒有被擊中,我用斷點檢查了它。

服務器端程序在master.cs文件中

我將不勝感激您的幫助。

這裏是的Site.Master

<body onunload="HandleClose();"> 
    <script type="text/javascript"> 
     function HandleClose() 
     {    
      PageMethods.AbandonSessions(); 
     } 

這裏的代碼是在master.cs代碼:

[System.Web.Services.WebMethod] 
     public static void AbandonSessions() 
     { 

      HttpContext.Current.Session.Abandon(); 

     } 

回答

0

您需要註冊頁面卸載JavaScript事件發送Ajax請求清除會話。當用戶關閉瀏覽器窗口或選項卡時,該事件將被激怒。這裏是一個example page

<html> 
<head> 
<script type="text/javascript"> 
function clearSession() { 
    // TODO: Send an AJAX call to a server side script 
    // that will clear the session 
} 
</script> 

</head> 
<body onunload="clearSession();"> 

</body> 
</html> 
+0

我做了同樣的事情,但服務器程序沒有被擊中。 – Jignesh 2010-06-09 08:15:33

+0

你可以嘗試用jQuery發送請求並啓用同步請求嗎? – 2010-06-09 08:22:50

+0

jQuery將做同樣的事情。 – Jignesh 2010-06-09 08:29:15