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"]

posted on 2017-03-23 22:58  奔游浪子  阅读(455)  评论(0)    收藏  举报

导航