Asp.net

在 ASP.NET 中,何時應該使用 Session.Clear() 而不是 Session.Abandon()?

  • December 7, 2008

Session.Clear() 和 Session.Abandon() 都擺脫了會話變數。據我了解, Abandon() 結束目前會話,並導致創建一個新會話,從而導致 End 和 Start 事件觸發。

在大多數情況下呼叫 Abandon() 似乎更可取,例如註銷使用者。有沒有我會使用 Clear() 的場景?性能差異很大嗎?

Session.Abandon() 銷毀會話並觸發Session_OnEnd 事件。

Session.Clear()只是從對像中刪除所有值(內容)。具有相同密鑰的會話仍然存在。

因此,如果您使用Session.Abandon(),您將失去該特定會話,並且使用者將獲得一個新的會話密鑰。例如,您可以在使用者註銷時使用它。

如果Session.Clear()您希望使用者保留在同一會話中(例如,如果您不希望使用者重新登錄)並重置所有會話特定數據,請使用 。

引用自:https://stackoverflow.com/questions/347377