共用方式為


HOW TO:讀取 Cookie

更新:2007 年 11 月

Cookie 提供在 Web 應用程式中儲存使用者特定資訊的方法,例如記錄或使用者偏好設定。Cookie 是在 Web 伺服器和用戶端之間,伴隨要求和回應傳送的一小段文字。Cookie 包含 Web 應用程式能夠在使用者造訪網站時讀取的資訊。

瀏覽器負責管理使用者系統上的 Cookie。Cookie 會伴隨網頁要求傳送至伺服器,並且可以做為 HttpRequest 物件的一部分進行存取,這個物件會公開 Cookies 集合。您可以只讀取在目前網域或路徑中的網頁所建立之 Cookie。

程序

  • 使用 Cookie 的名稱做為索引鍵,從 Cookies 集合讀取字串。

    下列程式碼範例,示範了讀取名為 UserSettings 的 Cookie,然後讀取名為 Font 的子機碼值。

    If (Request.Cookies("UserSettings") IsNot Nothing) Then
        Dim userSettings As String
        If (Request.Cookies("UserSettings")("Font") IsNot Nothing) Then
            userSettings = Request.Cookies("UserSettings")("Font")
        End If
    End If
    
    if (Request.Cookies["UserSettings"] != null)
    {
        string userSettings;
        if (Request.Cookies["UserSettings"]["Font"] != null)
        { userSettings = Request.Cookies["UserSettings"]["Font"]; }
    }
    

編譯程式碼

這項範例需要:

  • ASP.NET Web 網頁。

  • 之前撰寫名為 UserSettings 的 Cookie,如同主題 HOW TO:撰寫 Cookie 中所說明。

穩固程式設計

基於安全性考量,您可以只讀取相同網域的網頁所設定之 Cookie。如果已設定 Cookie 的 Path 屬性,只有在網域這個路徑中的網頁和子資料夾,才能夠使用這個 Cookie。

當讀取特定 Cookie 值時,測試 Cookie 是否存在及是否具有值,否則會發生例外狀況。

Cookie 中的所有值都會儲存為 String 型別,因此若要使用不同資料型別的 Cookie 值,您必須正確轉換值。

安全性

瀏覽器只能將資料傳回原來建立 Cookie 的伺服器。然而,惡意的使用者卻可以存取 Cookie,並讀取其內容。不要在 Cookie 中存放機密的資訊,例如,使用者名稱或密碼。而是儲存可用來查閱伺服器上機密資訊的語彙基元 (Token)。此外,Cookie 可能已遭他人修改,因此您應該使用與避免跨站台指令碼處理攻擊的相同方法,處理 Cookie 中的任何資料。如需詳細資訊,請參閱指令碼攻擊概觀

請參閱

工作

HOW TO:撰寫 Cookie

HOW TO:刪除 Cookie

概念

ASP.NET Cookie 概觀

Web 應用程式的基本安全性實行方式

ASP.NET 狀態管理概觀