共用方式為


控制工作階段狀態

更新:2007 年 11 月

Microsoft ASP.NET 提供 HttpSessionState 物件,您可以用此物件來儲存跨多個要求的使用者工作階段 (Session) 資訊。ASP.NET 工作階段管理功能既具彈性又很穩定,而且您也可以橫跨 Web 伺服陣列來使用。

在預設情況下,ASP.NET 工作階段物件會使用用戶端 Cookie 來存放識別項。這個識別項是用以在往返伺服器過程之間尋找工作階段。然而,ASP.NET 也支援 Cookieless 的工作階段模式,其從一開始便會將用戶端重新導向至包含該工作階段 ID 的新 URL,然後再從該 URL 中自動剖析出這個工作階段 ID。

對於使用工作階段狀態的 ASP.NET Mobile Web 網頁,您必須考量下列因素:

  • 有些行動裝置和閘道器並不支援 Cookie。在這些情況下,Web 伺服器必須將工作階段管理設定為 Cookieless 模式。

  • 一些行動裝置在經過 Cookieless 工作階段管理的重新導向之後,會在處理相對 URL 時發生問題。

有些行動裝置並不支援 Cookie,因此您必須為需要持續性 (Persistent) 狀態的案例尋找適用的替代技術。例如,當使用者登入網頁時,應用程式可以指派要在工作階段剩餘期間使用的登入 ID。通常,您會使用這個驗證 (稱為以 Cookie 為基礎的驗證) 表單的 Cookie。然而,以 Cookie 為基礎的驗證並非未支援 Cookie 之裝置的選項。這時您必須依賴其他的狀態管理機制。

工作階段狀態

其中一個替代方式是使用工作階段狀態。因為您可以將工作階段狀態設定成在不使用 Cookie 情況下工作,所以該使用者可以保留這個在工作階段狀態中的 ID。然而,這項技術的缺點之一,就是資訊會隨著工作階段過期。另一個不利條件即是此技術永遠需要工作階段狀態已在使用。

隱藏的變數

ASP.NET Mobile Web 網頁不包括可用於寫出隱藏變數的行動控制項。而是由表單在 MobilePage 類別內,提供名為 HiddenVariables 的集合。所有存放在這個集合中的名稱/數值的組合都將保存為隱藏變數。HiddenVariables 集合會在表單送出時自動重新填入這些隱藏變數。

這個替代方式使用網頁上的隱藏變數。隱藏變數會自動重新送出做為表單提交的一部分,不論提交至相同網頁或另一個網頁。

請參閱

概念

控制檢視狀態

ASP.NET 狀態管理概觀

參考

LoadPrivateViewState

SavePrivateViewState

HiddenVariables

MobilePage

其他資源

支援檢視狀態

建立 ASP.NET Mobile Web 網頁

應用程式開發人員手冊

開發 ASP.NET Mobile Web 網頁