• .net 完美cookies操作


    代码

      1 using System;
      2 using System.Web;
      3 
      4 namespace Moosoft.OA.Public
      5 {
      6     /// <summary>
      7     /// Cookie帮助类
      8     /// </summary>
      9     public class CookiesHelper
     10     {
     11 
     12         #region 获取Cookie
     13         /// <summary>
     14         /// 获得Cookie的值
     15         /// </summary>
     16         /// <param name="cookieName"></param>
     17         /// <returns></returns>
     18         public static string GetCookieValue(string cookieName)
     19         {
     20             return GetCookieValue(cookieName, null);
     21         }
     22 
     23         /// <summary>
     24         /// 获得Cookie的值
     25         /// </summary>
     26         /// <param name="cookieName"></param>
     27         /// <param name="key"></param>
     28         /// <returns></returns>
     29         public static string GetCookieValue(string cookieName, string key)
     30         {
     31             HttpRequest request = HttpContext.Current.Request;
     32             if (request != null)
     33                 return GetCookieValue(request.Cookies[cookieName], key);
     34             return "";
     35         }
     36 
     37         /// <summary>
     38         /// 获得Cookie的子键值
     39         /// </summary>
     40         /// <param name="cookie"></param>
     41         /// <param name="key"></param>
     42         /// <returns></returns>
     43         public static string GetCookieValue(HttpCookie cookie, string key)
     44         {
     45             if (cookie != null)
     46             {
     47                 if (!string.IsNullOrEmpty(key) && cookie.HasKeys)
     48                     return cookie.Values[key];
     49                 else
     50                     return cookie.Value;
     51             }
     52             return "";
     53         }
     54 
     55         /// <summary>
     56         /// 获得Cookie
     57         /// </summary>
     58         /// <param name="cookieName"></param>
     59         /// <returns></returns>
     60         public static HttpCookie GetCookie(string cookieName)
     61         {
     62             HttpRequest request = HttpContext.Current.Request;
     63             if (request != null)
     64                 return request.Cookies[cookieName];
     65             return null;
     66         }
     67 
     68         #endregion
     69 
     70         #region 删除Cookie
     71 
     72         /// <summary>
     73         /// 删除Cookie
     74         /// </summary>
     75         /// <param name="cookieName"></param>
     76         public static void RemoveCookie(string cookieName)
     77         {
     78             RemoveCookie(cookieName, null);
     79         }
     80 
     81         /// <summary>
     82         /// 删除Cookie的子键
     83         /// </summary>
     84         /// <param name="cookieName"></param>
     85         /// <param name="key"></param>
     86         public static void RemoveCookie(string cookieName, string key)
     87         {
     88             HttpResponse response = HttpContext.Current.Response;
     89             if (response != null)
     90             {
     91                 HttpCookie cookie = response.Cookies[cookieName];
     92                 if (cookie != null)
     93                 {
     94                     if (!string.IsNullOrEmpty(key) && cookie.HasKeys)
     95                         cookie.Values.Remove(key);
     96                     else
     97                         response.Cookies.Remove(cookieName);
     98                 }
     99             }
    100         }
    101 
    102         #endregion
    103 
    104         #region 设置/修改Cookie
    105 
    106         /// <summary>
    107         /// 设置Cookie子键的值
    108         /// </summary>
    109         /// <param name="cookieName"></param>
    110         /// <param name="key"></param>
    111         /// <param name="value"></param>
    112         public static void SetCookie(string cookieName, string key, string value)
    113         {
    114             SetCookie(cookieName, key, value, null);
    115         }
    116 
    117         /// <summary>
    118         /// 设置Cookie值
    119         /// </summary>
    120         /// <param name="key"></param>
    121         /// <param name="value"></param>
    122         public static void SetCookie(string key, string value)
    123         {
    124             SetCookie(key, null, value, null);
    125         }
    126 
    127         /// <summary>
    128         /// 设置Cookie值和过期时间
    129         /// </summary>
    130         /// <param name="key"></param>
    131         /// <param name="value"></param>
    132         /// <param name="expires"></param>
    133         public static void SetCookie(string key, string value, DateTime expires)
    134         {
    135             SetCookie(key, null, value, expires);
    136         }
    137 
    138         /// <summary>
    139         /// 设置Cookie过期时间
    140         /// </summary>
    141         /// <param name="cookieName"></param>
    142         /// <param name="expires"></param>
    143         public static void SetCookie(string cookieName, DateTime expires)
    144         {
    145             SetCookie(cookieName, nullnull, expires);
    146         }
    147 
    148         /// <summary>
    149         /// 设置Cookie
    150         /// </summary>
    151         /// <param name="cookieName"></param>
    152         /// <param name="key"></param>
    153         /// <param name="value"></param>
    154         /// <param name="expires"></param>
    155         public static void SetCookie(string cookieName, string key, string value, DateTime? expires)
    156         {
    157             HttpResponse response = HttpContext.Current.Response;
    158             if (response != null)
    159             {
    160                 HttpCookie cookie = response.Cookies[cookieName];
    161                 if (cookie != null)
    162                 {
    163                     if (!string.IsNullOrEmpty(key) && cookie.HasKeys)
    164                         cookie.Values.Set(key, value);
    165                     else
    166                         if (!string.IsNullOrEmpty(value))
    167                             cookie.Value = value;
    168                     if (expires != null)
    169                         cookie.Expires = expires.Value;
    170                     response.SetCookie(cookie);
    171                 }
    172             }
    173 
    174         }
    175 
    176         #endregion
    177 
    178         #region 添加Cookie
    179 
    180         /// <summary>
    181         /// 添加Cookie
    182         /// </summary>
    183         /// <param name="key"></param>
    184         /// <param name="value"></param>
    185         public static void AddCookie(string key, string value)
    186         {
    187             AddCookie(new HttpCookie(key, value));
    188         }
    189 
    190         /// <summary>
    191         /// 添加Cookie
    192         /// </summary>
    193         /// <param name="key"></param>
    194         /// <param name="value"></param>
    195         /// <param name="expires"></param>
    196         public static void AddCookie(string key, string value, DateTime expires)
    197         {
    198             HttpCookie cookie = new HttpCookie(key, value);
    199             cookie.Expires = expires;
    200             AddCookie(cookie);
    201         }
    202 
    203         /// <summary>
    204         /// 添加为Cookie.Values集合
    205         /// </summary>
    206         /// <param name="cookieName"></param>
    207         /// <param name="key"></param>
    208         /// <param name="value"></param>
    209         public static void AddCookie(string cookieName, string key, string value)
    210         {
    211             HttpCookie cookie = new HttpCookie(cookieName);
    212             cookie.Values.Add(key, value);
    213             AddCookie(cookie);
    214         }
    215 
    216         /// <summary>
    217         /// 添加为Cookie集合
    218         /// </summary>
    219         /// <param name="cookieName">Cookie名称</param>
    220         /// <param name="expires">过期时间</param>
    221         public static void AddCookie(string cookieName, DateTime expires)
    222         {
    223             HttpCookie cookie = new HttpCookie(cookieName);
    224             cookie.Expires = expires;
    225             AddCookie(cookie);
    226         }
    227 
    228         /// <summary>
    229         /// 添加为Cookie.Values集合
    230         /// </summary>
    231         /// <param name="cookieName"></param>
    232         /// <param name="key"></param>
    233         /// <param name="value"></param>
    234         /// <param name="expires"></param>
    235         public static void AddCookie(string cookieName, string key, string value, DateTime expires)
    236         {
    237             HttpCookie cookie = new HttpCookie(cookieName);
    238             cookie.Expires = expires;
    239             cookie.Values.Add(key, value);
    240             AddCookie(cookie);
    241         }
    242 
    243         /// <summary>
    244         /// 添加Cookie
    245         /// </summary>
    246         /// <param name="cookie"></param>
    247         public static void AddCookie(HttpCookie cookie)
    248         {
    249             HttpResponse response = HttpContext.Current.Response;
    250             if (response != null)
    251             {
    252                 //指定客户端脚本是否可以访问[默认为false]
    253                 cookie.HttpOnly = true;
    254                 //指定统一的Path,比便能通存通取
    255                 cookie.Path = "/";
    256                 //设置跨域,这样在其它二级域名下就都可以访问到了
    257                 //cookie.Domain = "chinesecoo.com";
    258                 response.AppendCookie(cookie);
    259             }
    260         }
    261 
    262         #endregion
    263     }
    264 }
    265 
    266 
  • 相关阅读:
    牛客练习赛51 D题
    Educational Codeforces Round 72 (Rated for Div. 2) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Educational Codeforces Round 72 (Rated for Div. 2) B题
    Educational Codeforces Round 72 (Rated for Div. 2) A题
    《DSP using MATLAB》Problem 7.2
    《DSP using MATLAB》Problem 7.1
    《DSP using MATLAB》Problem 6.24
  • 原文地址:https://www.cnblogs.com/studio313/p/1695365.html
Copyright © 2020-2023  润新知