cookie 的一点点总结

  最近写了一个功能就是利用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);
原文地址:https://www.cnblogs.com/qinjian123/p/2737757.html