SessionStateSection.Cookieless 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定一個值,指示是否使用 Cookie 來識別用戶端會話。
public:
property System::Web::HttpCookieMode Cookieless { System::Web::HttpCookieMode get(); void set(System::Web::HttpCookieMode value); };
[System.Configuration.ConfigurationProperty("cookieless")]
public System.Web.HttpCookieMode Cookieless { get; set; }
[<System.Configuration.ConfigurationProperty("cookieless")>]
member this.Cookieless : System.Web.HttpCookieMode with get, set
Public Property Cookieless As HttpCookieMode
屬性值
true如果所有請求都被視為無 cookie,還是false沒有請求被當作無 cookie,或是其中一種值。HttpCookieMode ASP.NET 2.0 版本的預設值為 AutoDetect。 在早期版本中,預設值為 false。
- 屬性
範例
以下程式碼範例示範如何取得該 Cookieless 財產。 參考課程主題中的 SessionStateSection 程式碼範例,學習如何存取該 SessionStateSection 物件。
// Display the current Cookieless property value.
Console.WriteLine("Cookieless: {0}",
sessionStateSection.Cookieless);
' Display the current Cookieless property value.
Console.WriteLine("Cookieless: {0}", sessionStateSection.Cookieless)
備註
會話狀態有兩種方式可以儲存將用戶端與伺服器會話關聯的獨特 ID:在用戶端儲存 HTTP Cookie,或是在 URL 中編碼會話 ID。 將會話 ID 儲存在 Cookie 中較為安全,但需要客戶端瀏覽器支援 Cookie。
對於允許不支援 Cookie 的用戶端的應用程式,例如各種行動裝置,會話 ID 可能會儲存在 URL 中。 網址選項有幾個缺點。 它要求網站上的連結必須是相對的,且頁面在會話開始時必須以新的查詢字串值重新導向,並且會直接暴露在查詢字串中,方便在安全攻擊中使用。
建議只有在需要支援缺乏 cookie 支援的客戶端時,才建議使用 Cookieless 模式。
會話狀態也支援兩個額外選項: UseDeviceProfile 和 AutoDetect。 前者使會話狀態模組能根據瀏覽器功能,依據每個客戶端決定使用哪種模式(cookie 或無 cookie)。 該 AutoDetect 選項會與瀏覽器握手以驗證 Cookie 是否可儲存,因此需要額外請求來判斷。 如果你需要支援無 cookie 客戶端,強烈建議只 UseDeviceProfile 為需要 cookies 的客戶產生無 cookie 網址。
Note
與UP合作。瀏覽器 4.1 或 UP。瀏覽器 3.2 Redirect 的行為總是像物件屬性的值SupportsRedirectWithCookieHttpBrowserCapabilities是 false,除非 Cookieless Web.config 的屬性SessionState被明確設為 true。
在 1.1 版本 ASP.NET 中,這個設定的選項是 true 或 false,但到 ASP.NET 2.0 版本後,選項擴展,現在 AutoDetect 成為預設設定。 如果你的網頁應用程式設定 Cookieless 了屬性為布林值,那麼 Redirect 這些瀏覽器應該會正常運作。