單值cookie結構
CookieKeyName——CookieValue
CookieKeyName2——CookieValue2
...............
通過CookieKeyName進行設置和調用(主鍵名稱)
類似於字符串變量
多值Cookie 結構
【主鍵(Key)名稱】
【子健(key)名稱】:【子健值】
【子健(key)名稱2】:【子健值2】
【子健(key)名稱3】:【子健值3】
【主鍵(key)名稱2】
【子健(key)名稱】:【子健值】
【子健(key)名稱2】:【子健值2】
【子健(key)名稱3】:【子健值3】
注意:最終我們需要調用子健值,需要挖2層才能看到子健值。更像一個字符串數組
Cookie操作需要掌握
單值Cookie 多值Cookie
添加(修改) 主鍵操作
刪除 -添加
-刪除
子健操作
-添加
-刪除
-修改
多值Cookie的添加
HttpCookie ck =new HttpCookie(“mulitCookie”) 主鍵“mulit”
ck.value.add("name","小王"); 子健“name”
ck.value.add("age","18");
ck.value.add("sex","男");
ck.Expires=DateTime.MaxValue;
Response.Cookie.add(ck);
多值Cookie主鍵刪除
方法與清楚單值的Cookie完全相同
ck.Expires=DateTime.Minvalue;
Response.Cookie["keyname"].Expires=datetime.minvalue;
另一種非標准的寫法:
ck=response.cookie["keyname"];
會在會話期間,保留一個沒有Value的空key
子健修改
對子健的調用:Cookie.Value對象集合添加一個子項:ck.value.add("...","...")
修改子健的值:ck.value.set("keyname","newkeyname");
注意:子健值的修改,不能象單值Cookie用add,而必須用set。
實例:
protected void btnx_Click(object sender, EventArgs e) { //聲明Cookie並創建 HttpCookie ck = new HttpCookie("cookie"); //設置子健值 ck.Values.Add("name","張三"); ck.Values.Add("sex","男"); ck.Values.Add("age","18"); //設置過期時間:永不過期 ck.Expires = DateTime.MaxValue; //寫入客戶端 Response.Cookies.Add(ck); } //跳轉接受頁面 protected void btnlogin_Click(object sender, EventArgs e) { Response.Redirect("CookieInfo.aspx"); } //刪除Cookie protected void btndelect_Click(object sender, EventArgs e) { //刪除整個Cookie Response.Cookies["cookie"].Expires = DateTime.MinValue; } //修改子健 protected void btnupdate_Click(object sender, EventArgs e) { string upname = txtname.Text; if (upname!="") { HttpCookie ck = Request.Cookies["cookie"]; ck.Values.Add("name", upname); ck.Expires = DateTime.MaxValue; //寫入客戶端 Response.Cookies.Add(ck); } }
接收
protected void Page_Load(object sender, EventArgs e) { if (Response.Cookies["cookie"]!=null) { //這樣寫語句太長,台繁瑣 //lab.Text += Request.Cookies["cookie"].Values["name"] + ","; //lab.Text += Request.Cookies["cookie"].Values["sex"] + ","; //lab.Text += Request.Cookies["cookie"].Values["age"] + "歲"; //這樣寫一幕了然,Response 是響應頁的對象 Request是請求頁的對象 HttpCookie _ck; _ck = Request.Cookies["cookie"]; lab.Text = _ck.Values["name"] + "," + _ck.Values["sex"] + "," + _ck.Values["age"] + "歲"; }