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); // 寫入響應
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");
}
Response.Cookies["Info"]["user"] = "2"; // 直接修改鍵值
Response.Cookies["Info"].Expires = DateTime.Now.AddDays(1); // 同步更新過期時間
HttpCookie aCookie = Request.Cookies["Info"];
aCookie.Values.Remove("userid"); // 移除指定鍵
aCookie.Expires = DateTime.Now.AddDays(1); // 必須重新設置過期時間才能生效
Response.Cookies.Add(aCookie);
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);
}
Response.Cookies.Add(cookie) 才能生效Request.Cookies[i] 按索引取,Request.Cookies["name"] 按名取.Values["key"] 進行CookieHelper,統一管理鍵名、過期策略、加密邏輯HttpOnly = true 防 XSS,Secure = true 強制 HTTPS