打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CookieHelper

CookieHelper

分类: Asp.Net 523人阅读 评论(1) 收藏 举报

[c-sharp] view plaincopy?
  1. public class CookieHelper  
  2.    {  
  3.        #region 为Cookie赋值方法  
  4.        /**/  
  5.        /// <summary>  
  6.        /// 为Cookie赋值  
  7.        /// </summary>  
  8.        /// <param name="CookieName">Cookie名称</param>  
  9.        /// <param name="Nvc">Cookie值集合</param>  
  10.        /// <param name="days">Cookie日期  0 为无时间限制。浏览器关闭就结束</param>  
  11.        /// <param name="Domain">Cookie站点</param>  
  12.        /// <returns>返回布尔值</returns>  
  13.        public static bool WriteCookie(string CookieName, NameValueCollection Nvc, int days, string Domain)  
  14.        {  
  15.            bool BoolReturnValue = false;  
  16.            if (Nvc != null && !string.IsNullOrEmpty(CookieName)) //判断是否能建Cookie  
  17.            {  
  18.                HttpCookie httpCookie = new HttpCookie(CookieName);  
  19.                for (int i = 0; i < Nvc.Count; i++)  
  20.                {  
  21.                    httpCookie.Values.Add(Nvc.GetKey(i),HttpUtility.UrlEncode(Nvc.Get(i))); //将值添入Cookie中  
  22.                }  
  23.                if (days > 0)  
  24.                {  
  25.                    httpCookie.Expires = DateTime.Now.AddDays(days);  //设置Cookie有效期  
  26.                }  
  27.                  
  28.                if (!string.IsNullOrEmpty(Domain)) //判断Cookie站点有效  
  29.                {  
  30.                    httpCookie.Domain = Domain; //设置Cookie站点  
  31.                }  
  32.                HttpContext.Current.Response.AppendCookie(httpCookie); //添加Cookie  
  33.                BoolReturnValue = true;  
  34.            }  
  35.            return BoolReturnValue;  
  36.        }  
  37.        /// <summary>  
  38.        /// 不限制日期的写cookies 江文海修改  
  39.        /// </summary>  
  40.        /// <param name="CookieName">cookie名称</param>  
  41.        /// <param name="Nvc">集合</param>  
  42.        /// <returns></returns>  
  43.        public static bool WriteCookieNoDay(string CookieName, NameValueCollection Nvc)  
  44.        {  
  45.            bool BoolReturnValue = false;  
  46.            if (Nvc != null && !string.IsNullOrEmpty(CookieName)) //判断是否能建Cookie  
  47.            {  
  48.                HttpCookie httpCookie = new HttpCookie(CookieName);  
  49.                for (int i = 0; i < Nvc.Count; i++)  
  50.                {  
  51.                    httpCookie.Values.Add(Nvc.GetKey(i), Nvc.Get(i)); //将值添入Cookie中  
  52.                }                  
  53.                HttpContext.Current.Response.AppendCookie(httpCookie); //添加Cookie  
  54.                BoolReturnValue = true;  
  55.            }  
  56.            return BoolReturnValue;  
  57.        }  
  58.        /**/  
  59.        /// <summary>  
  60.        /// 为Cookie赋值  
  61.        /// </summary>  
  62.        /// <param name="CookieName">Cookie名称</param>  
  63.        /// <param name="Nvc">Cookie值集合</param>  
  64.        /// <param name="days">Cookie日期</param>  
  65.        /// <returns>返回布尔值</returns>  
  66.        public static bool WriteCookie(string CookieName, NameValueCollection Nvc, int days)  
  67.        {  
  68.            return WriteCookie(CookieName, Nvc, days, null);  
  69.        }  
  70.        /**/  
  71.        /// <summary>  
  72.        /// 为Cookie赋值  
  73.        /// </summary>  
  74.        /// <param name="CookieName">Cookie名称</param>  
  75.        /// <param name="Nvc">Cookie值集合</param>  
  76.        /// <returns>返回布尔值</returns>  
  77.        public static bool WriteCookie(string CookieName, NameValueCollection Nvc)  
  78.        {  
  79.            return WriteCookie(CookieName, Nvc, 1, null);  
  80.        }  
  81.        #endregion  
  82.        #region 添加Cookie值  
  83.        /// <summary>  
  84.        /// 添加Cookie值  
  85.        /// </summary>  
  86.        /// <param name="CookieName">Cookie名称</param>  
  87.        /// <param name="Nvc">Cookie值集合</param>  
  88.        /// <returns></returns>  
  89.        public static bool AddCookie(string CookieName, NameValueCollection Nvc)  
  90.        {  
  91.            bool BoolReturnValue = false;  
  92.            if (Nvc != null && !string.IsNullOrEmpty(CookieName)) //判断是否能建Cookie  
  93.            {  
  94.                for (int i = 0; i < Nvc.Count; i++)  
  95.                {  
  96.                    HttpContext.Current.Request.Cookies[CookieName].Values.Add(Nvc.GetKey(i), Nvc.Get(i));//添加Cookie;  
  97.                    HttpContext.Current.Response.Cookies[CookieName].Values.Add(Nvc.GetKey(i), Nvc.Get(i));//添加Cookie;  
  98.                }  
  99.            }  
  100.            return BoolReturnValue;  
  101.        }  
  102.        #endregion  
  103.        #region 更新Cookie  
  104.        /**/  
  105.        /// <summary>  
  106.        /// 更新Cookie  
  107.        /// </summary>  
  108.        /// <param name="CookieName">Cookie名称</param>  
  109.        /// <param name="Nvc">Cookie值集合</param>  
  110.        /// <returns>bool</returns>  
  111.        public static bool UpdateCookie(string CookieName, NameValueCollection Nvc)  
  112.        {  
  113.            bool BoolReturnValue = false;  
  114.            if (Nvc != null && !string.IsNullOrEmpty(CookieName)) //判断是否能建Cookie  
  115.            {  
  116.                HttpCookie httpCookie = new HttpCookie(CookieName);  
  117.                NameValueCollection NonceNvc = HttpContext.Current.Request.Cookies[CookieName].Values; //得到已有的Cookie值集合  
  118.                if (NonceNvc != null//判断Cookie值集合是否为空  
  119.                {  
  120.                    string CookieValue = string.Empty;  
  121.                    //------------------------循环判断Cookie值是否存在于新Cookie中,如果存在就予以更新-----------------------  
  122.                    for (int i = 0; i < NonceNvc.Count; i++)  
  123.                    {  
  124.                        CookieValue = NonceNvc.Get(i);  
  125.                        for (int y = 0; y < Nvc.Count; y++)  
  126.                        {  
  127.                            if (NonceNvc.GetKey(i) == Nvc.GetKey(y))  
  128.                            {  
  129.                                if (CookieValue != Nvc.Get(y))  
  130.                                {  
  131.                                    CookieValue = Nvc.Get(y);  
  132.                                }  
  133.                                break;  
  134.                            }  
  135.                        }  
  136.                        httpCookie.Values.Add(NonceNvc.GetKey(i), CookieValue); //不存在于原Cookie的值 ,被新加入  
  137.                        CookieValue = string.Empty;  
  138.                    }  
  139.                    //---------------------------------------------------------------------------------------------------------  
  140.                    HttpContext.Current.Response.AppendCookie(httpCookie); //加入Cookie  
  141.                    BoolReturnValue = true;  
  142.                }  
  143.            }  
  144.            return BoolReturnValue;  
  145.        }  
  146.        #endregion  
  147.        #region 得到Cookie值集合  
  148.        /**/  
  149.        /// <summary>  
  150.        /// 得到Cookie值集合  
  151.        /// </summary>  
  152.        /// <param name="CookieName">Cookie名称</param>  
  153.        /// <returns>返回NameValueCollection集合</returns>  
  154.        public static NameValueCollection GetCookie(string CookieName)  
  155.        {  
  156.            NameValueCollection Nvc = new NameValueCollection();  
  157.            if (!string.IsNullOrEmpty(CookieName) && HttpContext.Current.Request.Cookies[CookieName] != null//判断Cookie是否存在  
  158.            {  
  159.                Nvc = HttpContext.Current.Request.Cookies[CookieName].Values; //得到Cookie值集合  
  160.            }  
  161.            return Nvc;  
  162.        }  
  163.        #endregion  
  164.        #region 删除Cookie  
  165.        /// <summary>  
  166.        /// 删除cookie  
  167.        /// </summary>  
  168.        /// <param name="CookieName">cookie的值</param>  
  169.        /// <param name="CookieDomain">cookie的域</param>  
  170.        /// <returns></returns>  
  171.        public static bool DeleteCookie(string CookieName, string CookieDomain)  
  172.        {  
  173.            bool BoolReturnValue = false;  
  174.            HttpCookie httpCookie = HttpContext.Current.Request.Cookies[CookieName];  
  175.            if (httpCookie != null)  //如果Cookie存在  
  176.            {  
  177.                if (!string.IsNullOrEmpty(CookieDomain))  
  178.                {  
  179.                    httpCookie.Domain = CookieDomain;  
  180.                }                  
  181.                httpCookie.Expires = DateTime.Now.AddDays(-30); //来他个负30天,看他怎么存在  
  182.                HttpContext.Current.Response.Cookies.Add(httpCookie);  
  183.                BoolReturnValue = true;  
  184.            }  
  185.            return BoolReturnValue;  
  186.        }  
  187.        /**/  
  188.        /// <summary>  
  189.        /// 删除Cookie  
  190.        /// </summary>  
  191.        /// <param name="CookieName">Cookie名称</param>  
  192.        /// <returns>布尔值</returns>  
  193.        public static bool DeleteCookie(string CookieName)  
  194.        {  
  195.           return DeleteCookie(CookieName, null);  
  196.        }  
  197.        #endregion  
  198.        #region 得到单独一条Cookie的值   
  199.        /**/  
  200.        /// <summary>  
  201.        /// 得到单独一条Cookie的值  
  202.        /// </summary>  
  203.        /// <param name="CookieName">Cookie名称</param>  
  204.        /// <param name="KeyName">Key名称</param>  
  205.        /// <returns>返回string</returns>  
  206.        public static string GetSingleValue(string CookieName, string KeyName)  
  207.        {  
  208.            string StrReturnValue = string.Empty;  
  209.            HttpCookie httpCookie = HttpContext.Current.Request.Cookies[CookieName];  
  210.            if (httpCookie != null)  //如果Cookie存在  
  211.            {  
  212.                StrReturnValue =HttpUtility.UrlDecode(HttpContext.Current.Request.Cookies[CookieName].Values[KeyName]); //得到指定Key的Value  
  213.            }  
  214.            return StrReturnValue;  
  215.        }  
  216.        /**/  
  217.        /// <summary>  
  218.        /// 得到服务器端单独一条Cookie的值  
  219.        /// </summary>  
  220.        /// <param name="CookieName">Cookie名称</param>  
  221.        /// <param name="KeyName">Key名称</param>  
  222.        /// <returns>返回string</returns>  
  223.        public static string GetSingleValueFromServer(string CookieName, string KeyName)  
  224.        {  
  225.            string StrReturnValue = string.Empty;  
  226.            HttpCookie httpCookie = HttpContext.Current.Response.Cookies[CookieName];  
  227.            if (httpCookie != null)  //如果Cookie存在  
  228.            {  
  229.                StrReturnValue = HttpContext.Current.Response.Cookies[CookieName].Values[KeyName]; //得到指定Key的Value  
  230.            }  
  231.            return StrReturnValue;  
  232.        }  
  233.  
  234.        #endregion  
  235.        #region 更新单独一条Cookie的值  
  236.        /**/  
  237.        /// <summary>  
  238.        /// 更新单独一条Cookie的值  
  239.        /// </summary>  
  240.        /// <param name="CookieName">Cookie名称</param>  
  241.        /// <param name="KeyName">Key名称</param>  
  242.        /// <param name="Value">值</param>  
  243.        /// <returns>返回布尔值</returns>  
  244.        public static bool UpdateSingleValue(string CookieName,string KeyName, string Value)  
  245.        {  
  246.            bool BoolReturnValue = false;  
  247.            NameValueCollection nvc = new NameValueCollection();  
  248.            nvc.Add(KeyName, Value);  
  249.            if (!string.IsNullOrEmpty(CookieName)) //判断是否能建Cookie  
  250.            {  
  251.                HttpCookie httpCookie = HttpContext.Current.Request.Cookies[CookieName];  
  252.                if (httpCookie != null)  
  253.                {  
  254.                    if (HttpContext.Current.Request.Cookies[CookieName].Values[KeyName] != null)  
  255.                    {  
  256.                        BoolReturnValue = UpdateCookie(CookieName, nvc);  
  257.                    }  
  258.                    else  
  259.                    {  
  260.                        BoolReturnValue = AddCookie(CookieName, nvc);  
  261.                    }  
  262.                }  
  263.                else  
  264.                {  
  265.                    BoolReturnValue = WriteCookie(CookieName, nvc);  
  266.                }  
  267.            }  
  268.            return BoolReturnValue;  
  269.        }  
  270.        #endregion  
  271.        #region 添加单独的一条Cookie值  
  272.        /// <summary>  
  273.        /// 添加单独的一条Cookie值  
  274.        /// </summary>  
  275.        /// <param name="CookieName">Cookie名称</param>  
  276.        /// <param name="KeyName">Key名称</param>  
  277.        /// <param name="Value">值</param>  
  278.        /// <returns></returns>  
  279.        public static bool AddSingleCookie(string CookieName, string KeyName, string Value)  
  280.        {  
  281.            bool BoolReturnValue = false;  
  282.            NameValueCollection nvc = new NameValueCollection();  
  283.            nvc.Add(KeyName, Value);  
  284.            if (!string.IsNullOrEmpty(CookieName)) //判断是否能建Cookie  
  285.            {  
  286.                HttpCookie httpCookie = HttpContext.Current.Request.Cookies[CookieName];  
  287.                if (httpCookie != null)  
  288.                {  
  289.                    if (HttpContext.Current.Request.Cookies[CookieName].Values[KeyName] != null)  
  290.                    {  
  291.                        BoolReturnValue = UpdateCookie(CookieName, nvc);  
  292.                    }  
  293.                    else  
  294.                    {  
  295.                        BoolReturnValue = AddCookie(CookieName, nvc);  
  296.                    }  
  297.                }  
  298.                else  
  299.                {  
  300.                    BoolReturnValue = WriteCookie(CookieName, nvc);  
  301.                }  
  302.            }  
  303.            return BoolReturnValue;  
  304.        }  
  305.        #endregion  
  306.        #region 判断是否存在Cookie表  
  307.        /// <summary>  
  308.        /// 判断是否存在Cookie表  
  309.        /// </summary>  
  310.        /// <param name="CookieName">Cookie名称</param>  
  311.        /// <returns></returns>  
  312.        public static bool HasCookie(string CookieName)  
  313.        {  
  314.            bool BoolReturnValue = false;  
  315.            if (HttpContext.Current.Request.Cookies[CookieName] != null)  
  316.                BoolReturnValue = true;  
  317.            return BoolReturnValue;  
  318.        }  
  319.        #endregion  
  320.    }  

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
.net 完美操作cookies
C#操作Cookie的帮助类
C#使用cookie记住密码
一言不和就造轮子之CookieHelper
CookieUtils —— Cookie 工具类
Java读取Cookie
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服