Cookie操作公共方法类

using System;
using System.Web;

namespace AmwITx.Framework.Web.Components
{
    /// <summary>
    /// Cookie
    /// </summary>
    public class Cookie
    {
        private Cookie() { }

        private static Cookie _instance = new Cookie();

        public static Cookie Instance
        {
            get { return _instance; }
            set { _instance = value; }
        }

        /// <summary>
        /// SetCookie
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public void Set(string key, string value)
        {
            Set(key, value, "/", "", 0);
        }

        /// <summary>
        /// SetCookie
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <param name="path"></param>
        /// <param name="domain">二级域名时定位</param>
        /// <param name="hour"></param>
        public void Set(string key, string value, string path, string domain, int hour)
        {
            Set(key, value, path, domain, DateTime.Now.AddHours(hour));
        }

        /// <summary>
        /// SetCookie
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <param name="path"></param>
        /// <param name="domain">二级域名时定位</param>
        /// <param name="expires"></param>
        public void Set(string key, string value, string path, string domain, DateTime expires)
        {
            var cookie = HttpContext.Current.Request.Cookies[key];
            bool isAdd = false;
            if (cookie == null)
            {
                isAdd = true;
                cookie = new HttpCookie(key);
            }
            cookie.Path = path;
            cookie.Domain = domain;
            cookie.Value = HttpUtility.UrlEncode(value);
            if (expires > DateTime.Now)
            {
                cookie.Expires = expires;
            }

            if (isAdd)
            {
                HttpContext.Current.Response.Cookies.Add(cookie);
            }
            else
            {
                HttpContext.Current.Response.Cookies.Set(cookie);
            }
        }

        /// <summary>
        /// Cookie
        /// </summary>
        public string Get(string key)
        {
            var cookie = HttpContext.Current.Request.Cookies[key];
            return cookie != null ? HttpUtility.UrlDecode(cookie.Value) : "";
        }
        /// <summary>
        /// Cookie
        /// </summary>
        /// <param name="key"></param>
        public void Remove(string key)
        {
            Remove(key, "", "");
        }

        public void Remove(string key, string path, string domain)
        {
            var hc = new HttpCookie(key);
            if (path != "")
            {
                hc.Path = path;
            }
            if (domain != "")
            {
                hc.Domain = domain;
            }
            hc.Expires = DateTime.Now.AddDays(-1);

            HttpContext.Current.Response.Cookies.Add(hc);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值