ASP.NET 允許開發者使用會話狀態(Session State)來保存每個活動 Web 應用程式會話的專屬資料。會話狀態本質上是 HttpSessionState 類別的實例,其作用範圍僅限於當前的瀏覽器會話。這意味著不同用戶擁有獨立的會話狀態,甚至同一用戶在離開後重新訪問,也會建立全新的會話狀態。
會話狀態採用鍵/值字典結構儲存特定於會話的資訊,這些資料需在伺服器往返與頁面請求之間保持。主要用途包括:
將應用程式專屬資訊加入會話狀態後,伺服器會根據配置選項管理該物件。會話資訊可儲存在:
預設情況下,所有 ASP.NET 應用程式均啟用會話狀態。
會話變數儲存在 SessionStateItemCollection 集合中(透過 HttpContext.Session 屬性存取)。集合支援以變數名稱或整數索引存取。建立會話變數無需宣告,直接指派值即可:
Session["FirstName"] = FirstNameTextBox.Text; Session["LastName"] = LastNameTextBox.Text;
會話變數可儲存任何有效的 .NET 型別。儲存複雜物件時,讀取需強制轉型:
ArrayList stockPicks = (ArrayList)Session["StockPicks"]; Session["StockPicks"] = stockPicks;