C#操作CooKie
Cookie是什么就不用多说了吧,感觉它好有用啊
单值cookie:
将一串信息按照规律作为cookie的值存起来
HttpCookie hc = new HttpCookie("ds_1"); hc.Value = HttpUtility.UrlEncode("test_1=one&test_2=two"); hc.Expires = DateTime.Now.AddMinutes(5); Response.Cookies.Add(hc);
结果如下:因为使用了编码,所以 %3d代表 =;%26代表&

读取cookie
HttpCookie hc = HttpContext.Current.Request.Cookies["ds"]; Response.Write(hc.Value);
多值Cookie:
一个cookie有一个值,但是这一个值里面可以是多个键值对
HttpCookie hc = new HttpCookie("ds"); hc.Values["ds_1"] = "11111"; hc.Values["ds_2"] = "22222"; hc.Expires = DateTime.Now.AddMinutes(5); Response.Cookies.Add(hc);
效果如图:

读取多值cookie
HttpCookie hc = HttpContext.Current.Request.Cookies["ds"]; if (hc != null) { Response.Write(string.Format("值里第一个键:ds_1对应的值是:{0},第二个键:ds_2对应的值是:{1}", hc["ds_1"], hc.Values["ds_2"])); }
因为发现多值cookie的特点,于是我就猜想,我把单值cookie的值写成标准的多值cookie,然后用读取多值cookie的方式去读取,看看结果如何
HttpCookie hc = HttpContext.Current.Request.Cookies["ds2"]; if (hc != null) { Response.Write(string.Format("值里第一个键:ds_1对应的值是:{0},第二个键:ds_2对应的值是:{1}", hc["test_1"], hc.Values["test_2"])); } else { hc = new HttpCookie("ds2"); hc.Value = "test_1=one&test_2=two"; hc.Expires = DateTime.Now.AddMinutes(5); Response.Cookies.Add(hc); }
结果依然可行,
其实多值cookie的设定与读取可以简写:
hc.Values["test_1"]=xxx; hc.Values["test_1"]
hc["test_1"]=xxx; hc["test_1"]
浙公网安备 33010602011771号