什么是Cookie
一段文本数据,默认存储在客户端,一种存放在浏览器缓存,一种存放在磁盘,最大可存储4kb。
一个客户端状态保持机制,(网站的数据是存在客户端),与隐藏域ViewState对象都属于这种客户端状态保持,Cookie中存储的是关于网站相关的文本字符串数据。Cookie的存储方式有两种,如果不指定过期时间,那么存储在客户端浏览器内存中,如果指定了过期时间,那么存储在客户端的磁盘上。Cookie食欲具体的网站有关的,如果我们将Cookie设置了过期日期,那么当用户在指定时间内访问我们的网站,属于我们网站的Cookie数据会放在请求报文中发送过来,其他网站的Cookie不会发送。
在哪用到了Cookie
自增、上次浏览位置、下次自动登录、购物车等等
Cookie的部分属性
//创建Cookie
Response.Cookies["cp3"].Value = "xiaozhang";
//指定过期时间
Response.Cookies["cp3"].Expires = DateTime.Now.AddDays(3);
//删除Cookie
Response.Cookies["cp3"].Expires = DateTime.Now.AddDays(-1);
//Cookie跨域(域名)
Response.Cookies["cp3"].Domain = "";//设置主域域名
//Cookie的Path
Response.Cookies["cp3"].Path = "";//设置好路径,只有当前路径下的网页会获取Cookie,其他网站不用,防止不必要的数据量
创建Cookie的两种方式
①
Response.Cookies["UserSettings"]["Font"] = "Arial";
Response.Cookies["UserSettings"]["Color"] = "Blue";
Response.Cookies["UserSettings"].Expires = DateTime.Now.AddDays(1d);
②
HttpCookie myCookie = new HttpCookie("UserSettings");
myCookie["Font"] = "Arial";
myCookie["Color"] = "Blue";
myCookie.Expires = DateTime.Now.AddDays(1d);
Response.Cookies.Add(myCookie);
多值Cookie的使用
解决了一个页面最多有20个Cookie的限制
Response.Cookies["userInfo"]["userName"] = "patrick";
Response.Cookies["userInfo"]["lastVisit"] = DateTime.Now.ToString();
Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(1);