HOW TO:讀取 Cookie
更新:2007 年 11 月
Cookie 提供在 Web 應用程式中儲存使用者特定資訊的方法,例如記錄或使用者偏好設定。Cookie 是在 Web 伺服器和用戶端之間,伴隨要求和回應傳送的一小段文字。Cookie 包含 Web 應用程式能夠在使用者造訪網站時讀取的資訊。
瀏覽器負責管理使用者系統上的 Cookie。Cookie 會伴隨網頁要求傳送至伺服器,並且可以做為 HttpRequest 物件的一部分進行存取,這個物件會公開 Cookies 集合。您可以只讀取在目前網域或路徑中的網頁所建立之 Cookie。
程序
若要讀取 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 中的任何資料。如需詳細資訊,請參閱指令碼攻擊概觀。