CookieHelper

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;

namespace Common
{
    public class CookieHelper
    {
        /// <summary>
        /// 保存一个Cookie
        /// </summary>
        /// <param name="CookieName">Cookie名称</param>
        /// <param name="CookieValue">Cookie值</param>
        /// <param name="CookieTime">Cookie过期时间(小时),0为关闭页面失效</param>
        public static void SaveCookie(string CookieName, string CookieValue, double CookieTime)
        {
            HttpCookie myCookie = new HttpCookie(CookieName);
            DateTime now = DateTime.Now;
            myCookie.Value = CookieValue;

            if (CookieTime != 0)
            {
                myCookie.Expires = now.AddDays(CookieTime);
                if (HttpContext.Current.Response.Cookies[CookieName] != null)
                    HttpContext.Current.Response.Cookies.Remove(CookieName);

                HttpContext.Current.Response.Cookies.Add(myCookie);
            }
            else
            {
                if (HttpContext.Current.Response.Cookies[CookieName] != null)
                    HttpContext.Current.Response.Cookies.Remove(CookieName);

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


        /// <summary>
        /// 取得CookieValue
        /// </summary>
        /// <param name="CookieName">Cookie名称</param>
        /// <returns>Cookie的值</returns>
        public static string GetCookie(string CookieName)
        {
            HttpCookie myCookie = new HttpCookie(CookieName);
            myCookie = HttpContext.Current.Request.Cookies[CookieName];

            if (myCookie != null)
                return myCookie.Value;
            else
                return null;
        }


        /// <summary>
        /// 清除CookieValue
        /// </summary>
        /// <param name="CookieName">Cookie名称</param>
        public static void ClearCookie(string CookieName)
        {
            HttpCookie myCookie = new HttpCookie(CookieName);
            DateTime now = DateTime.Now;

            myCookie.Expires = now.AddYears(-2);

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



        #region 清除Cookie

        /// <summary>
        /// 清除Cookie
        /// </summary>
        /// <param name="cookieName"></param>
        public static void ClearCookie(string cookieName, string domain, string path)
        {
            cookieName = Encode(cookieName);

            HttpCookie cookie = new HttpCookie(cookieName);
            cookie.Domain = domain;
            cookie.Path = path;
            cookie.Expires = DateTime.Now.AddDays(-360);

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

        /// <summary>
        /// 从多值Cookie移除个subKey
        /// </summary>
        /// <param name="cookieName"></param>
        /// <param name="subKey"></param>
        public static void ClearCookie(string cookieName, string subKey, string domain, string path)
        {
            cookieName = Encode(cookieName);
            subKey = Encode(subKey);

            HttpCookie cookie;

            if (System.Web.HttpContext.Current.Request.Cookies[cookieName] == null)
            {
                cookie = new HttpCookie(cookieName);
            }
            else
            {
                cookie = System.Web.HttpContext.Current.Request.Cookies[cookieName];
            }
            cookie.Domain = domain;
            cookie.Path = path;

            cookie.Values.Remove(subKey);

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

        public static string Encode(string input)
        {
            if (string.IsNullOrEmpty(input))
            {
                return null;
            }
            // return AntiXssEncoderTwo.UrlEncode(input);
            return HttpUtility.UrlEncode(input);//.Replace("_", "%5F").Replace("&", "%26").Replace("+", "%2B");
        }

        public static string Decode(string input)
        {
            return HttpUtility.UrlDecode(input);
        }
        #endregion   
    }
}

 

posted on 2017-07-24 16:28  HOT SUMMER  阅读(219)  评论(0编辑  收藏  举报

导航