码迷,mamicode.com
首页 > 其他好文 > 详细

Cookie简单介绍

时间:2015-06-15 00:07:19      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:

Cookie

首先是一些概念

  1. Cookie存储在客户端计算机中
  2. Cookie不能跨浏览器。
  3. Cookie是以键值对的方式存储的。(键、值都是字符串)
  4. Cookie可以分为
    1. 会话Cookie,存储在了浏览器的进程内存中,浏览器以关闭,则Cookie消失
    2. 持久Cookie,把Cookie数据存储到了本地硬盘上。
  5. 在写入Cookie的时候可以指定Cookie的有效域名,只有在访问这些域名的网站时,才会自动携带该Cookie。

接下来是网上找的一个CookieHelper:

using System;
using System.Collections.Generic;
using System.Web;

public class CookieHelper
{
    /// <summary>
    ///     写入
    /// </summary>
    /// <param name="n">cookie名</param>
    /// <param name="d">保存天数</param>
    /// <param name="l">需要保存的列表的值</param>
    public static void WriteIn(string n, int d, Dictionary<string, string> l)
    {
        var cookie = new HttpCookie(n); //初使化并设置Cookie的名称
        var dt = DateTime.Now;
        var ts = new TimeSpan(d, 0, 0, 0, 0); //过期时间为d天
        cookie.Expires = dt.Add(ts); //设置过期时间
        foreach (var item in l)
        {
            cookie.Values.Add(item.Key, item.Value);
        }
        HttpContext.Current.Response.AppendCookie(cookie);
    }

    /// <summary>
    ///     单个读出
    /// </summary>
    /// <param name="n">cookie名</param>
    /// <param name="v">第X个值</param>
    /// <returns></returns>
    public static string Read(string n, string v)
    {
        return HttpContext.Current.Request.Cookies[n][v];
    }

    /// <summary>
    ///     修改
    /// </summary>
    /// <param name="n">cookie名</param>
    /// <param name="c">需要修改的索引</param>
    /// <param name="v">需要修改的值</param>
    public static void ReWrite(string n, string c, string v)
    {
        //获取客户端的Cookie对象
        var cok = HttpContext.Current.Request.Cookies[n];

        if (cok != null)
        {
            cok.Values[c] = v;
            HttpContext.Current.Response.AppendCookie(cok);
        }
    }

    /// <summary>
    ///     新增
    /// </summary>
    /// <param name="n">cookie名</param>
    /// <param name="c">索引</param>
    /// <param name="v">值</param>
    public static void Add(string n, string c, string v)
    {
        //获取客户端的Cookie对象
        var cok = HttpContext.Current.Request.Cookies[n];

        if (cok != null)
        {
            //往Cookie里加入新的内容
            cok.Values.Set(c, v);
            HttpContext.Current.Response.AppendCookie(cok);
        }
    }

    /// <summary>
    ///     去除
    /// </summary>
    /// <param name="n">cookie名</param>
    /// <param name="c">索引</param>
    public static void Remove(string n, string c)
    {
        var cok = HttpContext.Current.Request.Cookies[n];
        if (cok != null)
        {
            cok.Values.Remove(c); //移除
            HttpContext.Current.Response.AppendCookie(cok);
        }
    }

    /// <summary>
    ///     删除
    /// </summary>
    /// <param name="n">cookie名</param>
    public static void Delete(string n)
    {
        var cok = HttpContext.Current.Request.Cookies[n];
        if (cok != null)
        {
            var ts = new TimeSpan(-1, 0, 0, 0);
            cok.Expires = DateTime.Now.Add(ts); //通过设置过期时间,删除整个Cookie
            HttpContext.Current.Response.AppendCookie(cok);
        }
    }
}

  

Cookie简单介绍

标签:

原文地址:http://www.cnblogs.com/FangZhaohu/p/4575911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!