• asp.net中HttpCookie操作cookie的方法


    微软对HttpCookie的定义为“提供创建和操作各 HTTP Cookie 的类型安全方法。”

    HttpCookie的构造函数一共有两个 1.HttpCookie(String)  //直接定义 2.HttpCookie(String, String) //定义并赋值

    感觉第一个用的比较常见,因为使用HttpCookie定义cookie对象,往往只是操作对象中的键值对。如果只是定义简单的cookie,可以直接使用response操作

    一、HttpCookie使用示例:

    1.写cookie

    //定义cookie对象
    HttpCookie cookie = new HttpCookie("person");
    //属性为“会员”
    cookie.Value = "会员";
    //过期时间为1小时
    cookie.Expires = DateTime.Now.Add(new TimeSpan(0,1,0,0));
    //可以设置cookie的访问目录和域名
    //cookie.Path = "";
    //cookie.Domain = "";
    //以下是定义的键值对。
    cookie.Values.Add("name","张三");
    cookie.Values.Add("age","20");
    //添加到响应体中,不能缺少
    Response.Cookies.Add(cookie);  
    //Response.AppendCookie(cookie); /用于追加操作
    2.读取cookie
    //从请求体中过去cookie对象
    HttpCookie cookie = Request.Cookies.Get("person");
    if(cookie!=null)
    {    
    //读取全部 会员&name=张三&age=20
        Response.Write(cookie.Value+"<br/>")
        Response.Write(cookie.Values["name"]+"<br/>");  //张三    
    Response.Write(cookie["name"]);
     //张三 }
    else {
        Response.Write("不存在");
    }

    3.删除cookie,因为我们操作的是cookie对象,所以删除可以分为全部删除,即删除person。或只删除cookie对象中的键

    a.删除cookie对象中的键

    HttpCookie cookie = Request.Cookies.Get("person");
    if(cookie!=null)
    {    
    cookie.Values.Remove("name");
        //Response.AppendCookie(cookie);  
      Response.Cookies.Add(cookie);
    }
    b.删除整个cookie,设置cookie日期过期
    HttpCookie cookie = Request.Cookies.Get("person");
    if(cookie!=null)
    {
        cookie.Expires = DateTime.Now.Add(new TimeSpan(0, -3, 0, 0));
        Response.Cookies.Add(cookie);
    }
    二、我对HttpCookie与Response.Cookies、Request.Cookies的理解

    Response(HttpResponse)与Request(HttpRequest)使用System.Web.HttpCookieCollection响应cookie集合,通过 HttpRequest 的 Cookies 集合访问的集合包含以 Cookie 标头形式由客户端传输到服务器的 Cookie。 通过 HttpResponse 的 Cookies 集合访问的集合包含一些新 Cookie,这些 Cookie 在服务器上创建并以 Set-Cookie 标头的形式传输到客户端。 并且通过Response,Request我们可以直接操作cookie。

    而HttpCookie更面向于对象,我们在操作cookie时,是在操作一个对象。我们要响应cookie也必须使用Response与Request。因为我们写cookie时要用到: Response.Cookies.Add(cookie); 而读取时: Request.Cookies.Get(“person”);

    而独立于Response的HttpCookie对象无法设置成功,独立于Request的HttpCookie对象始终为null。

    HttpCookie只是方便我们操作cookie,并且更加的面向对象。

    三、HttpCookie与Response.Cookies,Request.Cookies的互操作

    HttpCookie与Response.Cookies,Request.Cookies的互操作是完全可行的。
    不管是用哪个写用哪个读都是可行的。例如:
    1.HttpCookie写,Request读

    //写 cookie HttpCookie cookie = new HttpCookie("person");
    cookie.Values.Add("name","张三");
    //读取
    Response.Write(Request.Cookies["person"]["name"]);
    //response写
    Response.Cookies["person"]["name"]="lisi";
    Response.Cookies["person"]["age"] = "20";
    2.Response写,HttpCookie读
    //读取
    HttpCookie cookie = Request.Cookies.Get("person");
    if(cookie!=null) {
        Response.Write(cookie.Value+"<br/>");  //读取全部 会员&name=张三&age=20    
    Response.Write(cookie.Values["name"]+"<br/>");  //张三    
    Response.Write(cookie["name"]);  //张三
    }
    else {
        Response.Write("不存在");
    }
     
    原创文章,转载请注明: 转载自沉默的小丑
  • 相关阅读:
    初识人工智能(一):数据分析(三):numpy科学计算基础库(二)
    Python3标准库:urllib.parse分解URL
    Python3标准库:selectors I/O多路复用抽象
    Python3标准库:ipaddress Internet地址
    初识人工智能(一):数据分析(二):numpy科学计算基础库(一)
    Python3标准库:concurrent.futures管理并发任务池
    初识人工智能(一):数据分析(一):matplotlib绘图库
    Python3标准库:asyncio异步I/O、事件循环和并发工具
    Python3标准库:multiprocessing像线程一样管理进程
    Python3标准库:threading进程中管理并发操作
  • 原文地址:https://www.cnblogs.com/hclw/p/3988418.html
Copyright © 2020-2023  润新知