ASP.NET狀態管理之九(會話Session)

來源:互聯網
上載者:User

ASP.NET 允許您使用工作階段狀態儲存每個活動的 Web 應用程式會話的值,工作階段狀態是 HttpSessionState 類的一個執行個體。

工作階段狀態與應用程式狀態相似,不同的只是工作階段狀態的範圍限於當前的瀏覽器會話。如果有不同的使用者在使用您的應用程式,則每個使用者會話都將有一個不同的工作階段狀態。此外,如果同一使用者在退出後又返回到應用程式,第二個使用者會話的工作階段狀態也會與第一個不同。

工作階段狀態採用鍵/值字典形式的結構來儲存特定於會話的資訊,這些資訊需要在伺服器往返行程之間及頁請求之間進行維護。

可以使用工作階段狀態來完成以下任務:

1.唯一標識瀏覽器或用戶端裝置請求,並將這些請求映射到伺服器上的單獨會話執行個體。

2.在伺服器上儲存特定於會話的資料,以用於同一個會話內的多個瀏覽器或用戶端裝置請求。

3.引發適當的會話管理事件。此外,可以利用這些事件編寫應用程式代碼。

一旦將應用程式特定的資訊添加到工作階段狀態中,伺服器就會管理該對象。根據您指定的選項的不同,可以將會話資訊儲存在 Cookie 中、進程外伺服器中或運行 Microsoft SQL Server 的電腦中。

預設情況下,所有 ASP.NET 應用程式都啟用 ASP.NET 工作階段狀態。

會話變數

如何:儲存工作階段狀態中的值

會話變數儲存在通過 System.Web.HttpContext.Session 屬性公開的 SessionStateItemCollection 中。

會話變數集合按變數名稱或整數索引來進行索引。僅需通過名稱引用會話變數即可建立會話變數。無需聲明會話變數或將會話變數顯式添加到集合中。

例如,下面的程式碼範例建立分別表示使用者的名字和姓氏的會話變數,並將它們設定為從 TextBox 控制項檢索到的值。

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

預設情況下,會話變數可以為任何有效 .NET 類型。

例如,下面的程式碼範例將值的 ArrayList 儲存在名為“StockPicks”的會話變數中。注意,由“StockPicks”會話變數返回的值在從 SessionStateItemCollection 檢索出來時必須強制轉換為適當的類型。

ArrayList stockPicks = (ArrayList)Session["StockPicks"];Session["StockPicks"] = stockPicks;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.