我有一個ASP.net頁面。當我關閉網頁時,我需要清除會話變量。關閉瀏覽器實際上應該清除會話變量一個ASP.net會話ID
如何處理這個我需要保持超時到20分鐘。 如果他關閉和登錄在二十分鐘的次數超時時間
是否有清除ASP.net會話ID
我有一個ASP.net頁面。當我關閉網頁時,我需要清除會話變量。關閉瀏覽器實際上應該清除會話變量一個ASP.net會話ID
如何處理這個我需要保持超時到20分鐘。 如果他關閉和登錄在二十分鐘的次數超時時間
是否有清除ASP.net會話ID
[編輯]正如其他人的建議,你的會議應時間任何方法可行但如果你想在超時之前關閉會話(例如清理大型會話對象)並讓你的javascript可用...
你可以用一個window.onbeforeunload
處理程序來做到這一點,該處理程序回發到退出頁面。
function CloseSession()
{
location.href = 'SignOut.aspx';
}
window.onbeforeunload = CloseSession;
你也可以通過AJAX做到這一點。 SignOut.aspx頁面(或者你正在使用的任何平臺)應該放棄用戶的會話。
只需準備好在瀏覽器崩潰的情況下就不會被調用。 – 2008-11-13 14:23:59
我認爲唯一的好方法是在服務器上設置會話變量的超時時間。 Web服務器無法確定用戶是否已關閉瀏覽器。
Javascript不是一個好的選擇,因爲你可以禁用它的客戶端。
你不能那樣做。
你不控制端的瀏覽器-用戶。用戶可能會關閉瀏覽器,崩潰,斷開Internet連接,禁用JavaScript或崩潰等,或者用戶可能只需輸入另一個URL(之後用戶可能會使用後退按鈕返回到您的頁面,並且希望繼續他/她的會議與您的網站)。
window.onbeforeunload在每次卸載頁面時觸發。即使用戶瀏覽到您網站上的其他頁面,也可能需要重新進行會話。
我不清楚ASP.Net如何實現其會話,但Cookie RFC的一部分是,會話cookie(無特定'expires'日期的cookie)在瀏覽器關閉時被清除。
肯定有辦法讓ASP.Net使用正確的會話cookie而不是固定超時的cookie?
您好試試這個JavaScript函數
function ConfirmClose()
{
if (event.clientY < 0)
{
/* Your asynchronouse request to the page and call that function*/
}
}
/*now call this method on event of javascript*/
我didn'try這一點,但它只是從心中出來
不是這種重複http://stackoverflow.com/questions/283591/ aspnet-session-destroy-if-he-close-the-browser – 2008-11-13 14:51:53
對不起,但我想你可能會試圖在這裏解決錯誤的問題。爲什麼你需要立即清除會話狀態? – Kramii 2008-11-13 15:25:50