• C# Cookie操作类


    public class CookiesHelper
    {
    #region 获取Cookie

    /// <summary>
    /// 获得Cookie的值
    /// </summary>
    /// <param name="cookieName"></param>
    /// <returns></returns>
    public static string GetCookieValue(string cookieName)
    {
    string value = GetCookieValue(cookieName, null);
    if (!string.IsNullOrEmpty(value))
    {
    value = value.Replace("&^%HH123sdfa", ";");
    }
    return value;
    }

    /// <summary>
    /// 获得Cookie的值
    /// </summary>
    /// <param name="cookieName"></param>
    /// <param name="key"></param>
    /// <returns></returns>
    public static string GetCookieValue(string cookieName, string key)
    {
    HttpRequest request = HttpContext.Current.Request;
    if (request != null)
    return GetCookieValue(request.Cookies[cookieName], key);
    return "";
    }

    /// <summary>
    /// 获得Cookie的子键值
    /// </summary>
    /// <param name="cookie"></param>
    /// <param name="key"></param>
    /// <returns></returns>
    public static string GetCookieValue(HttpCookie cookie, string key)
    {
    if (cookie != null)
    {
    if (!string.IsNullOrEmpty(key) && cookie.HasKeys)
    return cookie.Values[key];
    else
    return cookie.Value;
    }
    return "";
    }

    /// <summary>
    /// 获得Cookie
    /// </summary>
    /// <param name="cookieName"></param>
    /// <returns></returns>
    public static HttpCookie GetCookie(string cookieName)
    {
    HttpRequest request = HttpContext.Current.Request;
    if (request != null)
    return request.Cookies[cookieName];
    return null;
    }

    #endregion

    #region 删除Cookie

    /// <summary>
    /// 删除Cookie
    /// </summary>
    /// <param name="cookieName"></param>
    public static void RemoveCookie(string cookieName)
    {
    RemoveCookie(cookieName, null);
    }

    /// <summary>
    /// 设置Cookie失效
    /// </summary>
    public static void DeleteCookie(string cookieName)
    {
    CookiesHelper.SetCookie(cookieName, DateTime.Now.AddDays(-1));
    }

    /// <summary>
    /// 删除Cookie的子键
    /// </summary>
    /// <param name="cookieName"></param>
    /// <param name="key"></param>
    public static void RemoveCookie(string cookieName, string key)
    {
    HttpResponse response = HttpContext.Current.Response;
    if (response != null)
    {
    HttpCookie cookie = response.Cookies[cookieName];
    if (cookie != null)
    {
    if (!string.IsNullOrEmpty(key) && cookie.HasKeys)
    cookie.Values.Remove(key);
    else
    response.Cookies.Remove(cookieName);
    }
    }
    }

    #endregion

    #region 设置/修改Cookie

    /// <summary>
    /// 设置Cookie子键的值
    /// </summary>
    /// <param name="cookieName"></param>
    /// <param name="key"></param>
    /// <param name="value"></param>
    public static void SetCookie(string cookieName, string key, string value)
    {
    SetCookie(cookieName, key, value, null);
    }

    /// <summary>
    /// 设置Cookie值
    /// </summary>
    /// <param name="key"></param>
    /// <param name="value"></param>
    public static void SetCookie(string key, string value)
    {
    SetCookie(key, null, value, null);
    }

    /// <summary>
    /// 设置Cookie值和过期时间
    /// </summary>
    /// <param name="key"></param>
    /// <param name="value"></param>
    /// <param name="expires"></param>
    public static void SetCookie(string key, string value, DateTime expires)
    {
    SetCookie(key, null, value, expires);
    }

    /// <summary>
    /// 设置Cookie过期时间
    /// </summary>
    /// <param name="cookieName"></param>
    /// <param name="expires"></param>
    public static void SetCookie(string cookieName, DateTime expires)
    {
    SetCookie(cookieName, null, null, expires);
    }

    /// <summary>
    /// 设置Cookie
    /// </summary>
    /// <param name="cookieName"></param>
    /// <param name="key"></param>
    /// <param name="value"></param>
    /// <param name="expires"></param>
    public static void SetCookie(string cookieName, string key, string value, DateTime? expires)
    {
    HttpResponse response = HttpContext.Current.Response;
    if (response != null)
    {
    HttpCookie cookie = response.Cookies[cookieName];
    if (cookie != null)
    {
    if (!string.IsNullOrEmpty(key) && cookie.HasKeys)
    cookie.Values.Set(key, value);
    else
    if (!string.IsNullOrEmpty(value))
    cookie.Value = value;
    if (expires != null)
    cookie.Expires = expires.Value;
    response.SetCookie(cookie);
    }
    }

    }

    #endregion

    #region 添加Cookie

    /// <summary>
    /// 添加Cookie
    /// </summary>
    /// <param name="key"></param>
    /// <param name="value"></param>
    public static void AddCookie(string key, string value)
    {
    if (!string.IsNullOrEmpty(value))
    {
    value = value.Replace(";", "&^%HH123sdfa");
    }
    AddCookie(new HttpCookie(key, value));
    }

    /// <summary>
    /// 添加Cookie
    /// </summary>
    /// <param name="key"></param>
    /// <param name="value"></param>
    /// <param name="expires"></param>
    public static void AddCookie(string key, string value, DateTime expires)
    {
    HttpCookie cookie = new HttpCookie(key, value);
    cookie.Expires = expires;
    AddCookie(cookie);
    }

    /// <summary>
    /// 添加为Cookie.Values集合
    /// </summary>
    /// <param name="cookieName"></param>
    /// <param name="key"></param>
    /// <param name="value"></param>
    public static void AddCookie(string cookieName, string key, string value)
    {
    HttpCookie cookie = new HttpCookie(cookieName);
    cookie.Values.Add(key, value);
    AddCookie(cookie);
    }

    /// <summary>
    /// 添加为Cookie集合
    /// </summary>
    /// <param name="cookieName">Cookie名称</param>
    /// <param name="expires">过期时间</param>
    public static void AddCookie(string cookieName, DateTime expires)
    {
    HttpCookie cookie = new HttpCookie(cookieName);
    cookie.Expires = expires;
    AddCookie(cookie);
    }

    /// <summary>
    /// 添加为Cookie.Values集合
    /// </summary>
    /// <param name="cookieName"></param>
    /// <param name="key"></param>
    /// <param name="value"></param>
    /// <param name="expires"></param>
    public static void AddCookie(string cookieName, string key, string value, DateTime expires)
    {
    HttpCookie cookie = new HttpCookie(cookieName);
    cookie.Expires = expires;
    cookie.Values.Add(key, value);
    AddCookie(cookie);
    }

    /// <summary>
    /// 添加Cookie
    /// </summary>
    /// <param name="cookie"></param>
    public static void AddCookie(HttpCookie cookie)
    {
    HttpResponse response = HttpContext.Current.Response;
    if (response != null)
    {
    //指定客户端脚本是否可以访问[默认为false]
    cookie.HttpOnly = true;
    //指定统一的Path,比便能通存通取
    cookie.Path = "/";
    //设置跨域,这样在其它二级域名下就都可以访问到了
    //cookie.Domain = "chinesecoo.com";
    response.AppendCookie(cookie);
    }
    }

    #endregion
    }

  • 相关阅读:
    修改 MyEclipse 中的 jsp 和 servlet 模板
    javaWeb 数据库连接池连接数据库
    发现一个类的方法不够用时,可以使用的3种方法可以增强
    使用 greenDao 框架 操作数据库
    Android之使用Volley框架在ListView中加载大量图片
    js日期选择控件
    mysql 乱码问题
    java 使用反射技术解耦
    javaWeb 使用jsp开发 html过滤标签
    javaWeb 使用jsp开发 foreach 标签
  • 原文地址:https://www.cnblogs.com/2260827114com/p/6479846.html
Copyright © 2020-2023  润新知