首页 > 其他 > 详细

CookieHelper

时间:2017-07-24 17:09:35      阅读:277      评论:0      收藏:0      [点我收藏+]
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   
    }
}

 

CookieHelper

原文:http://www.cnblogs.com/wangchuang/p/7229638.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!