愚见未来

人的思想时时刻刻都在进步,如果你早上起床,想起昨天所做的事情是那么幼稚和迂腐,那么恭喜你,你又变得成熟一点了!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

来看一下COOKIES公用操作类

 
    /// <summary>
    /// Cookie 操作帮助类
    /// </summary>
    public class CookieHelper
    {
 
        #region 写cookie值
        /// <summary>
        /// 写cookie值
        /// </summary>
        /// <param name="strName">名称</param>
        /// <param name="strValue">值</param>
        public static void Write(string strName, string strValue)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
            if (cookie == null)
            {
                cookie = new HttpCookie(strName);
            }
            cookie.Value = strValue;
            HttpContext.Current.Response.AppendCookie(cookie);
 
        }
        /// <summary>
        /// 写cookie值
        /// </summary>
        /// <param name="strName">名称</param>
        /// <param name="strValue">值</param>
        /// <param name="doMain">域  例如:contoso.com</param>
        public static void WriteWithDomain(string strName, string strValue, string doMain)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
            if (cookie == null)
            {
                cookie = new HttpCookie(strName);
            }
            cookie.Value = strValue;
            cookie.Domain = doMain;
            HttpContext.Current.Response.AppendCookie(cookie);
 
        }
 
        /// <summary>
        /// 写cookie值
        /// </summary>
        /// <param name="strName">名称</param>
        /// <param name="key">键名</param>
        /// <param name="strValue">值</param>
        public static void Write(string strName, string key, string strValue)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
            if (cookie == null)
            {
                cookie = new HttpCookie(strName);
            }
            cookie[key] = strValue;
            HttpContext.Current.Response.AppendCookie(cookie);
 
        }
        /// <summary>
        /// 写cookie值
        /// </summary>
        /// <param name="strName">名称</param>
        /// <param name="key">键名</param>
        /// <param name="strValue">值</param>
        /// <param name="doMain">域  例如:contoso.com</param>
        public static void WriteWithDomain(string strName, string key, string strValue
                                           , string doMain)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
            if (cookie == null)
            {
                cookie = new HttpCookie(strName);
            }
            cookie.Domain = doMain;
            cookie[key] = strValue;
            HttpContext.Current.Response.AppendCookie(cookie);
 
        }
 
        /// <summary>
        /// 写cookie值
        /// </summary>
        /// <param name="strName">名称</param>
        /// <param name="strValue">值</param>
        /// <param name="strValue">过期时间(分钟)</param>
        public static void Write(string strName, string strValue, int expires)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
            if (cookie == null)
            {
                cookie = new HttpCookie(strName);
            }
 
            cookie.Value = strValue;
            cookie.Expires = System.DateTime.Now.AddMinutes(expires);
            HttpContext.Current.Response.AppendCookie(cookie);
        }
        /// <summary>
        /// 写cookie值
        /// </summary>
        /// <param name="strName">名称</param>
        /// <param name="strValue">值</param>
        /// <param name="strValue">过期时间(分钟)</param>
        /// <param name="doMain">域  例如:contoso.com</param>
        public static void WriteWithDomain(string strName, string strValue, int expires
                                            , string doMain)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
            if (cookie == null)
            {
                cookie = new HttpCookie(strName);
            }
            cookie.Domain = doMain;
            cookie.Value = strValue;
            cookie.Expires = System.DateTime.Now.AddMinutes(expires);
            HttpContext.Current.Response.AppendCookie(cookie);
        }
        /// <summary>
        /// 写cookie值
        /// </summary>
        /// <param name="strName">名称</param>
        /// <param name="key">键名</param>
        /// <param name="strValue">值</param>
        /// <param name="expires">过期时间(分钟)</param>
        public static void Write(string strName, string key, string strValue, int expires)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
            if (cookie == null)
            {
                cookie = new HttpCookie(strName);
            }
            cookie[key] = strValue;
            cookie.Expires = System.DateTime.Now.AddMinutes(expires);
            HttpContext.Current.Response.AppendCookie(cookie);
        }
        /// <summary>
        /// 写cookie值
        /// </summary>
        /// <param name="strName">名称</param>
        /// <param name="key">键名</param>
        /// <param name="strValue">值</param>
        /// <param name="expires">过期时间(分钟)</param>
        /// <param name="doMain">域  例如:contoso.com</param>
        public static void WriteWithDomain(string strName, string key, string strValue
                                           , int expires, string doMain)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
            if (cookie == null)
            {
                cookie = new HttpCookie(strName);
            }
            cookie.Domain = doMain;
            cookie[key] = strValue;
            cookie.Expires = System.DateTime.Now.AddMinutes(expires);
            HttpContext.Current.Response.AppendCookie(cookie);
        }
 
        #endregion
 
        #region 读cookie值
 
        /// <summary>
        /// 读cookie值
        /// </summary>
        /// <param name="strName">名称</param>
        /// <returns>cookie值</returns>
        public static string Read(string strName)
        {
            if (HttpContext.Current.Request.Cookies != null
                && HttpContext.Current.Request.Cookies[strName] != null)
            {
                return HttpContext.Current.Request.Cookies[strName].Value;
            }
            else
            {
                return string.Empty;
            }
        }
 
        /// <summary>
        /// 读cookie值
        /// </summary>
        /// <param name="strName">名称</param>
        /// <param name="key">键名</param>
        /// <returns>cookie值</returns>
        public static string Read(string strName, string key)
        {
            if (HttpContext.Current.Request.Cookies != null
                && HttpContext.Current.Request.Cookies[strName] != null)
            {
                return HttpContext.Current.Request.Cookies[strName][key];
            }
            else
            {
                return string.Empty;
            }
        }
 
        #endregion
 
        #region Cookie 删除
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="name">名称</param>
        public static void Remove(string name)
        {
            if (HttpContext.Current.Request.Cookies != null
                && HttpContext.Current.Request.Cookies[name] != null)
            {
                HttpCookie myCookie = new HttpCookie(name);
                myCookie.Expires = DateTime.Now.AddMinutes(-1);
                HttpContext.Current.Response.Cookies.Add(myCookie);
            }
        }
 
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="name">名称</param>
        /// <param name="key">二级建名称</param>
        public static void Remove(string name, string key)
        {
            if (HttpContext.Current.Request.Cookies != null
                && HttpContext.Current.Request.Cookies[name] != null
                && !string.IsNullOrEmpty(HttpContext.Current.Request.Cookies[name][key]))
            {

string[] temp = HttpContext.Current.Request.Cookies[name].Value

.Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);

                List<string> list = new List<string>();
                foreach (string item in temp)
                {
                    if (item.StartsWith(key))
                    {
                        continue;
                    }
                    else
                    {
                        list.Add(item);
                    }
                }
                Write(name, string.Join("&", list.ToArray()));
            }
        }
        #endregion
 
    
    }

而我们通过这个公用类来对cookies操作就显得容易了许多

 public void Write()
        {
            //不用域名,通用性
            VCommons.Http.CookieHelper.Write("test", "name", "bobo123");
            //加域名,IP地址形式
            VCommons.Http.CookieHelper.WriteWithDomain("test2", "nameByDomain"
                                                      , "bobo>Domain>IP", "127.0.0.1");
            //加域名,可以用localhost进行本地调试
            VCommons.Http.CookieHelper.WriteWithDomain("test3", "nameByDomain"
                                                       , "bobo>localhost", "localhost");
 
        }
        public void Clear()
        {
 
            //清除cookies名称为test的所有cookies元素            
            VCommons.Http.CookieHelper.Remove("test");

//将指定名称下的指定键值设置成空

VCommons.Http.CookieHelper.Write("test", "name", string.Empty);

            VCommons.Http.CookieHelper.Write("test2", "nameByDomain", string.Empty);
            VCommons.Http.CookieHelper.Write("test3", "nameByDomain", string.Empty);
 
        }