CookieHelper.cs 5.26 KB
using System;
using System.Web;

namespace Quiz.Utility
{
    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)
        {
            SaveCookie(CookieName, CookieValue, CookieTime, null);
        }

        /// <summary>
        /// 保存一个Cookie
        /// </summary>
        /// <param name="CookieName">Cookie名称</param>
        /// <param name="CookieValue">Cookie值</param>
        /// <param name="CookieTime">Cookie过期时间(小时),0为关闭页面失效</param>
        /// <param name="CookieDomain">Cookie域</param>
        public static void SaveCookie(string CookieName, string CookieValue, double CookieTime, string CookieDomain)
        {
            HttpCookie myCookie = new HttpCookie(CookieName);
            DateTime now = DateTime.Now;
            myCookie.Value = CookieValue;
            if (!string.IsNullOrEmpty(CookieDomain)) myCookie.Domain = CookieDomain;
            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>
        /// 保存传来的制定Cookie值
        /// </summary>
        /// <param name="cookie"></param>
        public static void SaveCookie(HttpCookie cookie)
        {
            HttpContext.Current.Response.Cookies.Add(cookie);
        }

        /// <summary>
        /// 保存一个Cookie
        /// </summary>
        /// <param name="CookieName">Cookie名称</param>
        /// <param name="CookieValue">Cookie值</param>
        /// <param name="CookieTime">Cookie过期时间(小时),0为关闭页面失效</param>
        public static void SaveCookie(HttpCookie cookie, double CookieTime)
        {
            DateTime now = DateTime.Now;
            if (CookieTime != 0)
            {
                cookie.Expires = now.AddDays(CookieTime);
                if (HttpContext.Current.Response.Cookies[cookie.Name] != null)
                    HttpContext.Current.Response.Cookies.Remove(cookie.Name);
                HttpContext.Current.Response.Cookies.Add(cookie);
            }
            else
            {
                if (HttpContext.Current.Response.Cookies[cookie.Name] != null)
                    HttpContext.Current.Response.Cookies.Remove(cookie.Name);
                HttpContext.Current.Response.Cookies.Add(cookie);
            }
        }


        /// <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>
        /// <param name="CookieValueName">Cookie内某一键所对应的值</param>
        /// <returns>Cookie的值</returns>
        public static string GetCookie(string CookieName, string CookieValueName)
        {
            HttpCookie myCookie = new HttpCookie(CookieName);
            myCookie = HttpContext.Current.Request.Cookies[CookieName];
            if (myCookie != null)
            {
                if (myCookie[CookieValueName] != null)
                {
                    return myCookie[CookieValueName];
                }
                else
                {
                    return "";
                }
            }
            else
            {
                return "";
            }
        }

        /// <summary>
        /// 根据Cookie名称获得指定的Cookie
        /// </summary>
        /// <param name="cookiename">Cookie名称</param>
        /// <returns></returns>
        public static HttpCookie GetCookies(string cookiename)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies[cookiename];
            return cookie;
        }


        /// <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);
        }
    }
}