最近写了一个功能就是利用Cookie,来保存客户端的常用搜索关键词。所以对cookie做一点点总结。也希望在博客园和大家交流、学习!
Cookie是一点文本信息,保存在客户端。是asp.net将会话与请求关联的方法之一,也可以用在请求之间传输数据,但数据随后将存储在客户端并随每个请求一起发送到服务器。浏览器对Cookie的大小限制的4096字节内。单一站点限制Cookie数量是50个(IE)。
创建Cookie:方式一
//方式一 HttpCookie acookie = new HttpCookie("last"); //初始化并设置Cookie名称 acookie.Value="username"; acookie..Expires=DateTime.MaxValue; //设置过期时间 Response.Cookies.Add(acookie); //方式二 Response.Cookies["username"].value="mike"; Response.Cookies["username"].Expires=DateTime.MaxValue; //设置过期时间
创建多值Cookie的写法
//方式1:
HttpCookie cookie = new HttpCookie("Userinfo"); cookie.Values["UserName"]="mike"; cookie.Values["Password"]="123456"; cookie.Expires=DateTime.MaxValue; //cookie.Expires = System.DateTime.Now.AddDays(1);//设置过期时间 1天 Response.Cookies.Add(cookie);
//方式2: Response.Cookies["Userinfo"]["UserName"].value="mike"; Response.Cookies["Userinfo"]["Password"].value="123456"; Response.Cookies["Userinfo"].Expires=DateTime.MaxValue;
创建Cookie 集合的写法
HttpCookie cookie=new HttpCookie("MyCook");//初使化并设置Cookie的名称 DateTime dt=DateTime.Now; TimeSpan ts = new TimeSpan(0, 0, 1,0,0);//过期时间为1分钟 cookie.Expires = dt.Add(ts);//设置过期时间 cookie.Values.Add("userid", "userid_value"); //保存第一组数据 cookie.Values.Add("userid2","userid2_value2"); //保存第二组数据 Response.AppendCookie(cookie);
读取Cookie :
Internet Explorer 将站点的 Cookie 保存在文件名格式为 <user>@<domain>.txt 的文件中,其中 <user> 是您的帐户名。
注意:在获取Cookie的值之前,应该确保该 Cookie 确实存在。否则,您将得到一个异常
If (Request.Cookies["userName"]!=null) { string str = Request.Cookies("userName").Value; }
读取多值Cookie
//多值Cookie的读取 If ( Request.Cookies["userInfo1"]!=null ) { string name=Request.Cookies["UserInfo"]["UserName"]; string pad=Request.Cookies["UserInfo1"]["Password"]; }
读取 Cookie 集合
var userCookie = Request.Cookies["Userinfo"]; if (userCookie.HasKeys) //是否有子键 { for (int j = 0; j < userCookie.Values.Count; j++) { Response.Write("子键名:" + userCookie.Values.AllKeys[j] + " " + "子键值:" + userCookie.Values[j] + "<br/>"); } } else { Response.Write("value=" + userCookie.Value + "<br/>"); }
删除Cookie。
将其有效期设置为过去的某个日期。当浏览器检查 Cookie 的有效期时,就会删除这个已过期的 Cookie。
var cok = Request.Cookies["Userinfo"]; cok.Expires = DateTime.Now.AddDays(-1); Response.AppendCookie(cok);