单值cookie结构

CookieKeyName——CookieValue

CookieKeyName2——CookieValue2

...............

通过CookieKeyName进行设置和调用(主键名称)

类似于字符串变量

多值Cookie 结构

【主键(Key)名称】

    【子健(key)名称】:【子健值】

    【子健(key)名称2】:【子健值2】

    【子健(key)名称3】:【子健值3】

【主键(key)名称2】

      【子健(key)名称】:【子健值】

    【子健(key)名称2】:【子健值2】

    【子健(key)名称3】:【子健值3】

注意:最终我们需要调用子健值,需要挖2层才能看到子健值。更像一个字符串数组

Cookie操作需要掌握

单值Cookie            多值Cookie

添加(修改)          主键操作

删除                -添加

                  -删除

                 子健操作

                  -添加

                  -删除

                  -修改

多值Cookie的添加

HttpCookie ck =new HttpCookie(“mulitCookie”)  主键“mulit”

ck.value.add("name","小王");       子健“name”

ck.value.add("age","18");

ck.value.add("sex","男");

ck.Expires=DateTime.MaxValue;

Response.Cookie.add(ck);

多值Cookie主键删除

方法与清楚单值的Cookie完全相同

  ck.Expires=DateTime.Minvalue;

  Response.Cookie["keyname"].Expires=datetime.minvalue;

另一种非标准的写法:

  ck=response.cookie["keyname"];

  会在会话期间,保留一个没有Value的空key

子健修改

对子健的调用:Cookie.Value对象集合添加一个子项:ck.value.add("...","...")

修改子健的值:ck.value.set("keyname","newkeyname");

注意:子健值的修改,不能象单值Cookie用add,而必须用set。

实例:

  

  protected void btnx_Click(object sender, EventArgs e)
{
//声明Cookie并创建
HttpCookie ck = new HttpCookie("cookie");
//设置子健值
ck.Values.Add("name","张三");
ck.Values.Add("sex","男");
ck.Values.Add("age","");
//设置过期时间:永不过期
ck.Expires = DateTime.MaxValue;
//写入客户端
Response.Cookies.Add(ck); }
//跳转接受页面
protected void btnlogin_Click(object sender, EventArgs e)
{
Response.Redirect("CookieInfo.aspx");
}
//删除Cookie
protected void btndelect_Click(object sender, EventArgs e)
{
//删除整个Cookie
Response.Cookies["cookie"].Expires = DateTime.MinValue; }
//修改子健
protected void btnupdate_Click(object sender, EventArgs e)
{
string upname = txtname.Text;
if (upname!="")
{
HttpCookie ck = Request.Cookies["cookie"];
ck.Values.Add("name", upname);
ck.Expires = DateTime.MaxValue;
//写入客户端
Response.Cookies.Add(ck);
}
}

接收

 protected void Page_Load(object sender, EventArgs e)
{
if (Response.Cookies["cookie"]!=null)
{
//这样写语句太长,台繁琐
//lab.Text += Request.Cookies["cookie"].Values["name"] + ",";
//lab.Text += Request.Cookies["cookie"].Values["sex"] + ",";
//lab.Text += Request.Cookies["cookie"].Values["age"] + "岁"; //这样写一幕了然,Response 是响应页的对象 Request是请求页的对象
HttpCookie _ck;
_ck = Request.Cookies["cookie"];
lab.Text = _ck.Values["name"] + "," + _ck.Values["sex"] + "," + _ck.Values["age"] + "岁"; }
05-20 22:13