首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

ASP.NET C# Cookie 操作完全指南

     編輯:關於C語言

前言

Cookie 操作雖簡單,但常用常忘。整理一份完整備忘錄,涵蓋寫入、讀取、修改、刪除單項與全清等全場景。

核心操作代碼

1. 寫入 Cookie

HttpCookie cookie = new HttpCookie("Info"); // 定義 Cookie 名稱
DateTime dt = DateTime.Now;
TimeSpan ts = new TimeSpan(1, 0, 0, 0); // 有效期 1 天
cookie.Expires = dt.Add(ts);
cookie.Values.Add("user", "cxbkkk");
cookie.Values.Add("userid", "1203");
Response.AppendCookie(cookie); // 寫入響應

2. 讀取 Cookie

if (Request.Cookies["Info"] != null)
{
    string temp = Convert.ToString(Request.Cookies["Info"].Values["user"]) + " " 
                + Convert.ToString(Request.Cookies["Info"].Values["userid"]);
    // 讀取整個 Cookie 值可用 Request.Cookies["Info"].Value
    
    if (string.IsNullOrEmpty(temp))
        Response.Write("空");
    else
        Response.Write(temp);
}
else
{
    Response.Write("error");
}

3. 修改 Cookie

Response.Cookies["Info"]["user"] = "2"; // 直接修改鍵值
Response.Cookies["Info"].Expires = DateTime.Now.AddDays(1); // 同步更新過期時間

4. 刪除 Cookie 中的單個屬性

HttpCookie aCookie = Request.Cookies["Info"];
aCookie.Values.Remove("userid"); // 移除指定鍵
aCookie.Expires = DateTime.Now.AddDays(1); // 必須重新設置過期時間才能生效
Response.Cookies.Add(aCookie);

5. 刪除所有 Cookie(設置過期為過去)

int limit = Request.Cookies.Count - 1;
for (int i = 0; i < limit; i++)
{
    HttpCookie aCookie = Request.Cookies[i];
    aCookie.Expires = DateTime.Now.AddDays(-1); // 設置為昨天,即刻失效
    Response.Cookies.Add(aCookie);
}

關鍵注意點

  • 修改/刪除必須重新 Add:Response.Cookies.Add(cookie) 才能生效
  • 過期時間是關鍵:不設置 Expires 為會話級 Cookie;設置過去時間即刪除
  • 索引器差異:Request.Cookies[i] 按索引取,Request.Cookies["name"] 按名取
  • Values 集合:多值 Cookie 操作通過 .Values["key"] 進行

最佳實踐建議

  • 封裝為靜態工具類 CookieHelper,統一管理鍵名、過期策略、加密邏輯
  • 敏感數據勿明文存儲,建議 AES 加密
  • 設置 HttpOnly = true 防 XSS,Secure = true 強制 HTTPS
  • 遵循 GDPR/個信法規,提供 Cookie 政策與用戶同意機制
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved