Share via


ASP.NET 工作階段狀態

ASP.NET 工作階段狀態讓您在使用者巡覽組成 Web 應用程式的不同 ASP.NET 網頁時,儲存和擷取使用者的數值。HTTP 是沒有狀態的通訊協定,表示 Web 伺服器會將每個網頁的 HTTP 要求視為獨立的要求;根據預設,伺服器不會保留先前的要求期間所使用的變數值資訊。因此,建置需要維護一些跨要求狀態資訊的 Web 應用程式 (實作購物車、資料捲動等的應用程式),可能是極具挑戰性的。ASP.NET 工作階段狀態會將在一段有限時間內從相同瀏覽器接收的要求辨識為工作階段,並針對該工作階段期間提供保存變數值的能力。

所有的 ASP.NET 應用程式預設都會啟用 ASP.NET 工作階段狀態。使用 Session 屬性即可輕鬆地設定及擷取 ASP.NET 工作階段狀態變數,這個屬性會將工作階段變數值儲存為集合,並依名稱進行索引。例如,下列程式碼範例會建立工作階段變數 FirstName 和 LastName,以表示使用者的姓氏和名字,並將使用者的姓名設定為從 TextBox 控制項擷取的值。

Session("FirstName") = FirstNameTextBox.Text
Session("LastName") = LastNameTextBox.Text
Session["FirstName"] = FirstNameTextBox.Text;
Session["LastName"] = LastNameTextBox.Text;

ASP.NET 預設會在 ASP.NET 應用程式的記憶體空間中儲存工作階段資訊。您可以選擇性地使用下列方式儲存工作階段資訊:使用獨立服務,以便在重新啟動 ASP.NET 應用程式時保留工作階段資訊;儲存在 SQL Server 中,以便工作階段資訊可在 Web 伺服陣列中的多個 Web 伺服器中使用 (如果重新啟動 ASP.NET 應用程式也會保存資訊);或儲存在自訂的資料存放區。如需詳細資訊,請參閱工作階段狀態模式

ASP.NET 也提供數個其他選項,可在應用程式內保存工作階段狀態以外的資料。如需每個選項的比較,請參閱 ASP.NET 狀態管理建議事項

在本節中

參考

  • System.Web.SessionState
    提供可儲存工作階段狀態中應用程式資料的類別和介面。

  • Session
    提供存取目前 HTTP 要求的工作階段。

相關章節