Cookie 是 Web 應用程式在客戶端儲存少量資料的常用機制。ASP.NET 提供 HttpCookie 類別封裝 Cookie 操作,用法直觀且功能完整。本文透過範例說明單一值與多值 (Subkeys) 的寫入、讀取技巧。
// 建立 Cookie 物件
HttpCookie cookie = new HttpCookie("aspcn");
cookie.Value = "飛刀"; // 設定值
cookie.Expires = DateTime.Now.AddDays(7); // 設定過期天數 (可選)
Response.Cookies.Add(cookie); // 寫入回應
if (Request.Cookies["aspcn"] != null)
{
string value = Request.Cookies["aspcn"].Value;
// 輸出: 飛刀
}
利用 HttpCookie.Values 集合 (NameValueCollection),可在同一 Cookie 下儲存多組資料,減少 Cookie 數量與請求標頭大小。
HttpCookie cookie = new HttpCookie("aspcn");
cookie.Values["webmaster"] = "飛刀";
cookie.Values["writer"] = "beige";
cookie.Values["LinkColor"] = "blue";
cookie.Expires = DateTime.Now.AddDays(30);
Response.Cookies.Add(cookie);
HttpCookie cookie = Request.Cookies["aspcn"];
if (cookie != null)
{
string webmaster = cookie.Values["webmaster"]; // 飛刀
string writer = cookie.Values["writer"]; // beige
string linkColor = cookie.Values["LinkColor"]; // blue
}
cookie.HttpOnly = true 防 XSS 竊取;cookie.Secure = true 僅 HTTPS 傳輸。HttpUtility.UrlEncode 寫入、UrlDecode 讀取。Expires = DateTime.Now.AddDays(-1) 即可讓瀏覽器移除。掌握 HttpCookie 的單值與多值操作,並注意大小、安全、編碼等細節,即能在 ASP.NET 中靈活運用 Cookie 實現「記住我」、偏好設定、購物車等常見功能。