2013-04-05 61 views
0

我用下面在web.config中Session_End中不調用後,我關閉瀏覽器

<sessionState mode="InProc" cookieless="false" timeout="10"/> 

設置...

<authentication mode="Forms"> 
<forms loginUrl="login.aspx" timeout="10"/> 

Session_End根據會議的價值我在改變列的值數據庫(如果此列的值爲1表示用戶在線),但有時在用戶關閉瀏覽器後的一天中,此列的鋼材值爲1(表示Session_End在用戶關閉瀏覽器後不會調用)

回答

0

沒有Session_End不會在頁面關閉時調用。 您需要使用腳本爲

<script>  
window.onbeforeunload = function (evt) { 
var message = ‘Are you sure you want to leave?’; 
if (typeof evt == ‘undefined’) { 
evt = window.event; 
} 
if (evt) { 
evt.returnValue = message; 
} 
return message; 
} 

</script> 

使用這個腳本時用戶關閉瀏覽器

+1

仔細試試這個:瀏覽器只是看到你離開這個頁面,當你在你的網站導航到另一個頁面也發生,甚至導致回發。 – 2013-04-05 09:07:43

+0

正確..但提問者的要求是這樣的 – Darshan 2013-04-05 09:38:53

1

如果您的瀏覽器關閉沒有事件將被調用,您可以識別,將超時後調用。

該事件應該被調用,但不一定在超時之後。

你可以嘗試從瀏覽器:啓動一個會話,等待> 1分鐘,做一回發莫名其妙

這將有助於驗證超時工作,我想你也會看到SESSIONEND發生在那個時候。否則,請等待並開始其他會話。系統會在某個時間調用它。

http://forums.asp.net/t/1689960.aspx/1