2009-10-21 194 views
2

因此,我有一個網站,我使用會話開始和結束事件來跟蹤和限制我們的Web應用程序的開放實例,即使在同一臺計算機上。在頁面卸載時,我調用會話啓用的頁面方法,然後調用session.abandon。在瀏覽器關閉asp.net的放棄會話。關閉會話cookie

這會觸發會話結束事件並清除會話變量,但不幸的是不會終止會話cookie!因此,如果其他瀏覽器實例打開,則會出現問題,因爲它們的會話狀態剛剛消失......並且當我再次打開殭屍會話的站點時仍然沒有過期時,會出現多個會話開始和會話結束事件任何後續回發。這發生在所有瀏覽器上。讓我怎麼真正如果您正在使用FormsAuthentication終止會話(強制cookie的到期)

回答

0

你可以使用:

FormsAuthentication.SignOut(); 
+0

會,這也刪除會話cookie? – Tuviah 2009-10-22 01:52:57

0

FormsAuthentication.SignOut();在web.config中爲會話狀態指定的超時時間之前,會過期認證cookie,但不會刪除會話cookie。如果您想立即刪除會話,請手動將會話cookie過期如下。

var myCookie = new HttpCookie(「ASP.NET_SessionId」){Expires = DateTime.Now.AddDays(-1D)}; Response.Cookies.Add(myCookie);

1

我一直用這個來確保用戶的會話不見了:

HttpContext.Current.Session.Abandon(); 
相關問題