C# 常用公共方法

2019-12-30 13:32:46刘景俊

7.Cookies帮助类

 


public class CookiesHelper
 {
  public static void AddCookie(string cookieName, DateTime expires)
  {
   HttpCookie cookie = new HttpCookie(cookieName)
   {
    Expires = expires
   };
   AddCookie(cookie, null);
  }

  public static void AddCookie(string key, string value)
  {
   AddCookie(new HttpCookie(key, value), null);
  }

  public static void AddCookie(HttpCookie cookie, string Domain)
  {
   HttpResponse response = HttpContext.Current.Response;
   if (response != null)
   {
    cookie.HttpOnly = true;
    cookie.Path = "/";
    if (!string.IsNullOrEmpty(Domain))
    {
     cookie.Domain = Domain;
    }
    response.AppendCookie(cookie);
   }
  }

  public static void AddCookie(string cookieName, DateTime expires, string Domain)
  {
   HttpCookie cookie = new HttpCookie(cookieName)
   {
    Expires = expires
   };
   AddCookie(cookie, Domain);
  }

  public static void AddCookie(string key, string value, DateTime expires)
  {
   HttpCookie cookie = new HttpCookie(key, value)
   {
    Expires = expires
   };
   AddCookie(cookie, null);
  }

  public static void AddCookie(string cookieName, string key, string value)
  {
   HttpCookie cookie = new HttpCookie(cookieName);
   cookie.Values.Add(key, value);
   AddCookie(cookie, null);
  }

  public static void AddCookie(string key, string value, bool withDomain, string Domain)
  {
   if (withDomain)
   {
    AddCookie(new HttpCookie(key, value), Domain);
   }
   else
   {
    AddCookie(new HttpCookie(key, value), null);
   }
  }

  public static void AddCookie(string key, string value, DateTime expires, string Domain)
  {
   HttpCookie cookie = new HttpCookie(key, value)
   {
    Expires = expires
   };
   AddCookie(cookie, Domain);
  }

  public static void AddCookie(string cookieName, string key, string value, DateTime expires)
  {
   HttpCookie cookie = new HttpCookie(cookieName)
   {
    Expires = expires
   };
   cookie.Values.Add(key, value);
   AddCookie(cookie, null);
  }

  public static void AddCookie(string cookieName, string key, string value, string Domain)
  {
   HttpCookie cookie = new HttpCookie(cookieName);
   cookie.Values.Add(key, value);
   AddCookie(cookie, Domain);
  }

  public static void AddCookie(string cookieName, string key, string value, DateTime expires, string Domain)
  {
   HttpCookie cookie = new HttpCookie(cookieName)
   {
    Expires = expires
   };
   cookie.Values.Add(key, value);
   AddCookie(cookie, Domain);
  }

  public static void AddDomainCookie(string key, string value, string Domain)
  {
   AddCookie(new HttpCookie(key, value), Domain);
  }

  public static HttpCookie GetCookie(string cookieName)
  {
   HttpRequest request = HttpContext.Current.Request;
   if (request != null)
   {
    if (request.Cookies[cookieName] != null)
    {
     return request.Cookies[cookieName];
    }
    if (request.Cookies[", " + cookieName] != null)
    {
     return request.Cookies[", " + cookieName];
    }
   }
   return null;
  }

  public static string GetCookieValue(string cookieName)
  {
   return GetCookieValue(cookieName, null);
  }

  public static string GetCookieValue(string cookieName, string key)
  {
   HttpRequest request = HttpContext.Current.Request;
   if (request == null)
   {
    return "";
   }
   if (request.Cookies[cookieName] != null)
   {
    if (!string.IsNullOrEmpty(key) && request.Cookies[cookieName].HasKeys)
    {
     return request.Cookies[cookieName].Values[key];
    }
    return request.Cookies[cookieName].Value;
   }
   string str = ", " + cookieName;
   if (request.Cookies[str] == null)
   {
    return "";
   }
   if (!string.IsNullOrEmpty(key) && request.Cookies[str].HasKeys)
   {
    return request.Cookies[str].Values[key];
   }
   return request.Cookies[str].Value;
  }

  public static string GetCookieValue(HttpCookie cookie, string key)
  {
   if (cookie == null)
   {
    return "";
   }
   if (!string.IsNullOrEmpty(key) && cookie.HasKeys)
   {
    return cookie.Values[key];
   }
   return cookie.Value;
  }

  public static void RemoveCookie(string cookieName)
  {
   RemoveCookie(cookieName, null);
  }

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

  public static void SetCookie(string cookieName, DateTime expires)
  {
   SetCookie(cookieName, null, null, new DateTime?(expires), null);
  }

  public static void SetCookie(string key, string value)
  {
   SetCookie(key, null, value, null, null);
  }

  public static void SetCookie(string cookieName, DateTime expires, string Domain)
  {
   SetCookie(cookieName, null, null, new DateTime?(expires), Domain);
  }

  public static void SetCookie(string key, string value, DateTime expires)
  {
   SetCookie(key, null, value, new DateTime?(expires), null);
  }

  public static void SetCookie(string cookieName, string key, string value)
  {
   SetCookie(cookieName, key, value, null, null);
  }

  public static void SetCookie(string key, string value, bool withDomain, string Domain)
  {
   if (withDomain)
   {
    SetCookie(key, null, value, null, Domain);
   }
   else
   {
    SetCookie(key, null, value, null, null);
   }
  }

  public static void SetCookie(string key, string value, DateTime expires, string Domain)
  {
   SetCookie(key, null, value, new DateTime?(expires), Domain);
  }

  public static void SetCookie(string cookieName, string key, string value, string Domain)
  {
   SetCookie(cookieName, key, value, null, Domain);
  }

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