关于Cookie的添加/修改/删除操作体验(C#)

1、添加Cookie

    protected void Button1_Click(objectsender, EventArgs e)

    {

        HttpCookiecookies = new HttpCookie("website"); 

           //方法一

        cookies.Values.Add("name","Jianjie1");

        cookies.Values.Add("sex","1");

                   //方法二

        cookies["name"]= "Jianjie2";

        cookies["sex"]= "0";

        cookies.Expires = DateTime.Now.AddMinutes(60);

        Response.Cookies.Add(cookies);

    }

 

2、修改Cookie

新建一个页面CookieModify.aspx,进行测试

下面写法错误:

    protected void Button1_Click(objectsender, EventArgs e)

    {

        HttpCookiecookies = Request.Cookies["website"];

        if(cookies != null)

        {

            cookies.Values["name"] = this.TextBox1.Text;

            cookies.Values.Add("newid", "0001");

        }

    }

再加上一句Response.AppendCookie(cookies);如下

    protected void Button1_Click(objectsender, EventArgs e)

    {

        HttpCookiecookies = Request.Cookies["website"];

        if(cookies != null)

        {

            cookies.Values["name"] = this.TextBox1.Text;

            cookies.Values.Add("newid", "0001");

                      Response.AppendCookie(cookies);

        }

}

再新建一个取值页面CookieGet.aspx,用它展示Cookie值,结果竟然报错

cookie修改报错

 

Cookies的值为NULL。

反复测试,发现在当前页面上跳转,Cookie取值正常,再打开一个新窗体页面中取值Cookie为NULL,

检查很久,最后尝试在修改页面CookieModify.aspx中增加过期时间:cookies.Expires =DateTime.Now.AddMinutes(60); 修改成功!

代码如下

    protected void Button1_Click(objectsender, EventArgs e)

    {

        HttpCookiecookies = Request.Cookies["website"];

        if(cookies != null)

        {

            cookies.Values["name"] = this.TextBox1.Text;

            cookies.Values.Add("newid", "0001");

            cookies.Expires = DateTime.Now.AddMinutes(60);

            Response.AppendCookie(cookies);

        }

    }

自己理解:修改Cookie后Response.AppendCookie(cookies); Cookie的默认过期时间是当前会话有效,所以在当前页面中跳转可以正常取值,重新打开一个新的窗体Cookie过期了为空。所以最好还是给Expires赋予过期时间。

3、删除Cookie

删除Cookie中的一个Value键值

    protected void btnDeleteItem_Click(objectsender, EventArgs e)

    {

        HttpCookiecookie = Request.Cookies["website"];

        if(cookie != null)

        {

            cookie.Values.Remove("name");

            cookie.Expires = DateTime.Now.AddMinutes(60);

            Response.AppendCookie(cookie);

        }

       

}

删除一个Cookie

    protected void btnDeleteCookie_Click(objectsender, EventArgs e)

    {

        HttpCookiecookie = Request.Cookies["website"];

        if(cookie != null)

        {

            cookie.Expires = DateTime.Now.AddDays(-1);

            Response.AppendCookie(cookie);

        }

 

    }

以上代码均经过测试,删除成功!

本本原创来源于长沙软件公司

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值