ASP.NET對Cookie的操作
概述
Cookie用來保存客戶瀏覽器請求服務器頁面的請求信息。
我們可以存放非敏感的用戶信息,保存時間可以根據需要設置。如果沒有設置Cookie失效日期,它的生命周期保存到關閉瀏覽器為止,Cookie對象的Expires屬性設置為MinValue表示永不過期。
Cookie存儲的數據量受限制,大多數的瀏覽器為4K因此不要存放大數據。
由於並非所有的瀏覽器都支持Cookie,數據將以明文的形式保存在客戶端。
一、創建Cookie:發送到客戶端瀏覽器
Domain和Path相同的所有Cookie在客戶端存在於一個文件中。
//通用設置 Response.Cookies["userName"].Value = "Park"; Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1);//不設Expires默認關閉瀏覽器就過期 Response.Cookies["userName"].Domain = "park.aa.com";//Domain默認為域名部分,以表示aa.com下的所有子域名。 Response.Cookies["userName"].Path = "App1";//Path默認為根目錄"/",表示根目錄下的所有頁面和子目錄 //單值Cookie HttpCookie Cookie = new HttpCookie("userName"); cookie.Value = "Park"; cookie.Expires = DateTime.Now.AddDays(1); Response.Cookies.Add(cookie); //多值Cookie HttpCookie cookies = new HttpCookie("userName"); cookies["name"] = "Park"; cookies["sex"] = "1"; cookies.Expires = DateTime.Now.AddMinutes(20); Response.Cookies.Add(cookies); //Response.SetCookies(cookies) //Response.AppendCookis(cookies);
二、讀取Cookie:
Domain、Path和Expires是無法讀取的
if (Request.Cookies["userName"] != null) { //讀取多值Cookie Response.Write(Request.Cookies["userName"].Value) //可以Server.HtmlEncode()編碼 //讀取多值Cookie Response.Write("Cookie中鍵值為userid的值:" + Request.Cookies["userName"]["sex"]); }
三、修改Cookie
不能直接修改一個Cookie,是創建一個同名的Cookie,並把該Cookie發送到瀏覽器覆蓋客戶機上的舊Cookie。
HttpCookie cok = Request.Cookies["userName"];//獲取客戶端的Cookie對象 if (cok != null) { cok.Values["userid"] = "alter-value";//修改Cookie cok.Values.Set("newid", "newValue");//往Cookie裡加入新的內容 Response.AppendCookie(cok); //或者 Response.Cookies["userName"].Value = "aa"; } Response.Cookies["Porschev"].Expires = DateTime.Now.AddMinutes(-1);
四、刪除Cookie:
無法直接刪除一個Cookie,可通過修改它的Expires為過去的某個時間,瀏覽器會刪除已經過期的Cookie。
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(-1); //或者 HttpCookie cok = Request.Cookies["userName"]; if (cok != null) { if (!CheckBox1.Checked) { cok.Values.Remove("userid");//移除鍵值為userid的值 } else { TimeSpan ts = new TimeSpan(0, 0, 0, 0); cok.Expires = DateTime.Now.Add(ts);//刪除整個Cookie,隻要把過期時間設置為現在 } Response.AppendCookie(cok); }
到此這篇關於ASP.NET操作Cookie的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 使用Jquery操作Cookies
- ASP.NET中HttpContext對象下的屬性介紹
- Java設置httponly cookie的實現示例
- ASP.NET HttpRequest類介紹
- Flask 入門系列 Cookie與session的介紹