小Z

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

CookieHelper

Cookie 帮助类

using System;
using System.Web;

namespace Infrastructure.Common
{
    /// <summary>
    /// Cookie帮助类
    /// </summary>
    public class CookieHelper
    {
        /// <summary>
        /// 添加一个Cookie
        /// </summary>
        /// <param name="cookieName">cookie名称</param>
        /// <param name="cookieValue">cookie值</param>
        /// <param name="expires">cookie有效期</param>
        /// <param name="domain"></param>
        /// <param name="httpOnly"></param>
        public static void SetCookie(string cookieName, string cookieValue, DateTime? expires, bool httpOnly = false, string domain = "")
        {
            HttpCookie cookie = new HttpCookie(cookieName)
            {
                Value = HttpContext.Current.Server.UrlEncode(cookieValue),
                HttpOnly = httpOnly
            };

            if (expires.HasValue)
            {
                cookie.Expires = expires.Value;
            }

            if (!string.IsNullOrWhiteSpace(domain)) cookie.Domain = domain;

            HttpContext.Current.Response.Cookies.Add(cookie);
        }

        /// <summary>
        /// 添加一个Cookie(24小时过期)
        /// </summary>
        /// <param name="cookieName">cookie名称</param>
        /// <param name="cookieValue">cookie值</param>
        /// <param name="httpOnly"></param>
        /// <param name="domain"></param>
        public static void SetCookie(string cookieName, string cookieValue, bool httpOnly = false, string domain = "")
        {
            SetCookie(cookieName, cookieValue, DateTime.Now.AddDays(1.0), httpOnly, domain);
        }

        /// <summary>  
        /// 获取指定Cookie值  
        /// </summary>  
        /// <param name="cookieName">cookie名称</param>
        /// <returns></returns>  
        public static string GetCookieValue(string cookieName)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies[cookieName];
            return cookie == null ? string.Empty : HttpContext.Current.Server.UrlDecode(cookie.Value);
        }

        /// <summary>  
        /// 清除指定Cookie  
        /// </summary>  
        /// <param name="cookieName">cookie名称</param> 
        public static void ClearCookie(string cookieName)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies[cookieName];
            if (cookie != null)
            {
                cookie.Expires = DateTime.Now.AddYears(-3);
                HttpContext.Current.Response.Cookies.Add(cookie);
            }
        }

        /// <summary>
        /// 清除所有Cookie
        /// </summary>
        public static void ClearAllCookie()
        {
            HttpCookieCollection cookieCollection = HttpContext.Current.Request.Cookies;
            if (cookieCollection != null)
            {
                foreach (HttpCookie cookie in cookieCollection)
                {
                    if (cookie == null) continue;
                    cookie.Expires = DateTime.Now.AddYears(-3);
                    HttpContext.Current.Response.Cookies.Add(cookie);
                }
            }
        }
    }
}

 

posted on 2018-01-18 17:35  小z要当魔法师  阅读(123)  评论(0)    收藏  举报