跨页面传值之Cookie

 

  3.客户端再次访问某站点

      浏览器将携带Cookie信息的指令,将获得的信息参与编译。

  4.将含有Cookie信息参与编译的页面发回给浏览器

      其中如果有相关的设置Cookie的指令。将再次通过浏览器,写入客户端

Cookie的限制

 

1.必须通过浏览器进行操作

  如果浏览器禁用Cookie,则无法工作

  信息只能是文本

  信息大小限制:4KB(兼容性考虑)

安全问题不容忽视

  使用Cookie存储的尽量是些无关痛痒的信息

  如果要保存用户名和密码,将编码为密文形式

实现单值Cookie的设置

  HttpCookie ck=new HttpCookie("animal");

  ck.value="猫";

  ck.expires=Date Time.Now.AddDays(1);

  Response.Cookies.Add(ck);                          ______Response.Write("......");

                         Response.Redirect(".....");

                           Response.Cookies.....

1.声明创建(可同时赋值)

2.设置有效期(一个时间点)

  如果不设置有效时间,关闭浏览器,Cookie就失效

  如果设置的有效时间当下时间以前的,Cookies无效

3.发送写入Cookie指令给浏览器(Response)

实现单值Cookie信息读取

1.需要加一个判断,判断Cookie是否存在。当存在时,才进行读取。

  判断:

    If(Request.Cookies[animal]!=null)

    {

      mystr=Request.Cookies["animal"].values;

    }

  注意:Value必须加,不同于Request.QueryString["...."]

      Request.Cookies["..."]是一个对象,不能对象和string变量不能赋值

   实例:

 

  C#:

 protected void BtnCookieset_Click(object sender, EventArgs e)
    {
        HttpCookie ck = new HttpCookie("name");  //创建HttpCookie对象
        ck.Value = "小王";            //设置cookie的名字
        ck.Expires = DateTime.Now.AddSeconds(10);   //为cookie设置失效时间
        Response.Cookies.Add(ck);   //添加cookie
    }

  C#

  protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Cookies["name"]!=null)   //判断结果Cookie 有数据
        {   
            //获取cookie的value值
            string read = Request.Cookies["name"].Value;
            //输出read
            Response.Write(read);
        }
        
    }

实现单值Cookie信息删除

  1.删除Cookie值不同于清空变量值。

    它存放的位置是客户端硬盘。

  2.删除cookie的思路

    将cookieName的邮箱期Expires设置为一个过期日期,在此写入硬盘

标准写法

  Response.Cookies["name"].Expires=DateTime.MinValue;

 

  protected void btnremoveCookie_Click(object sender, EventArgs e)
    {
        //删除cookie就是利用cookie的失效时间
        Response.Cookies["name"].Expires = DateTime.MinValue;
    }

 

 

 

 

posted @ 2018-06-11 10:49  WhiteSpace  阅读(698)  评论(0编辑  收藏  举报