• Cookie技术[ASP.NET]


    1.方案1
      1 public static class Cookie
      2     {
      3         /// 创建COOKIE对象并赋Value值
      4         /// <summary>
      5         /// 创建COOKIE对象并赋Value值,修改COOKIE的Value值也用此方法,因为对COOKIE修改必须重新设Expires
      6         /// </summary>
      7         /// <param name="strCookieName">COOKIE对象名</param>
      8         /// <param name="iExpires">COOKIE对象有效时间(秒数),1表示永久有效,0和负数都表示不设有效时间,大于等于2表示具体有效秒数,31536000秒=1年=(60*60*24*365),</param>
      9         /// <param name="strValue">COOKIE对象Value值</param>
     10         public static void SetObj(string strCookieName, int iExpires, string strValue)
     11         {
     12             HttpCookie objCookie = new HttpCookie(strCookieName.Trim());
     13             objCookie.Value = Utils.EncodeURIComponent(strValue.Trim());
     14             objCookie.Domain = N0.Config.CommonConfig.strDomain; 
     15             if (iExpires > 0)
     16             {
     17                 if (iExpires == 1)
     18                 {
     19                     objCookie.Expires = DateTime.MaxValue;
     20                 }
     21                 else
     22                 {
     23                     objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
     24                 }
     25             }
     26             HttpContext.Current.Response.Cookies.Add(objCookie);
     27         }
     28         /// 创建COOKIE对象并赋多个KEY键值
     29         /// <summary>
     30         /// 创建COOKIE对象并赋多个KEY键值
     31         /// 设键/值如下:
     32         /// NameValueCollection myCol = new NameValueCollection();
     33         /// myCol.Add("red", "rojo");
     34         /// myCol.Add("green", "verde");
     35         /// myCol.Add("blue", "azul");
     36         /// myCol.Add("red", "rouge");   结果“red:rojo,rouge;green:verde;blue:azul”
     37         /// </summary>
     38         /// <param name="strCookieName">COOKIE对象名</param>
     39         /// <param name="iExpires">COOKIE对象有效时间(秒数),1表示永久有效,0和负数都表示不设有效时间,大于等于2表示具体有效秒数,31536000秒=1年=(60*60*24*365),</param>
     40         /// <param name="KeyValue">键/值对集合</param>
     41         public static void SetObj(string strCookieName, int iExpires, NameValueCollection KeyValue)
     42         {
     43             HttpCookie objCookie = new HttpCookie(strCookieName.Trim());
     44             foreach (String key in KeyValue.AllKeys)
     45             {
     46                 objCookie[key] = Utils.EncodeURIComponent(KeyValue[key].Trim());
     47             }
     48             objCookie.Domain = N0.Config.CommonConfig.strDomain; 
     49             if (iExpires > 0)
     50             {
     51                 if (iExpires == 1)
     52                 {
     53                     objCookie.Expires = DateTime.MaxValue;
     54                 }
     55                 else
     56                 {
     57                     objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
     58                 }
     59             }
     60             HttpContext.Current.Response.Cookies.Add(objCookie);
     61         }
     62         /// 创建COOKIE对象并赋Value值
     63         /// <summary>
     64         /// 创建COOKIE对象并赋Value值,修改COOKIE的Value值也用此方法,因为对COOKIE修改必须重新设Expires
     65         /// </summary>
     66         /// <param name="strCookieName">COOKIE对象名</param>
     67         /// <param name="iExpires">COOKIE对象有效时间(秒数),1表示永久有效,0和负数都表示不设有效时间,大于等于2表示具体有效秒数,31536000秒=1年=(60*60*24*365),</param>
     68         /// <param name="strDomain">作用域</param>
     69         /// <param name="strValue">COOKIE对象Value值</param>
     70         public static void SetObj(string strCookieName, int iExpires, string strValue, string strDomain)
     71         {
     72             HttpCookie objCookie = new HttpCookie(strCookieName.Trim());
     73             objCookie.Value = Utils.EncodeURIComponent(strValue.Trim());
     74             objCookie.Domain = strDomain.Trim();
     75             if (iExpires > 0)
     76             {
     77                 if (iExpires == 1)
     78                 {
     79                     objCookie.Expires = DateTime.MaxValue;
     80                 }
     81                 else
     82                 {
     83                     objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
     84                 }
     85             }
     86             HttpContext.Current.Response.Cookies.Add(objCookie);
     87         }
     88         /// 创建COOKIE对象并赋多个KEY键值
     89         /// <summary>
     90         /// 创建COOKIE对象并赋多个KEY键值
     91         /// 设键/值如下:
     92         /// NameValueCollection myCol = new NameValueCollection();
     93         /// myCol.Add("red", "rojo");
     94         /// myCol.Add("green", "verde");
     95         /// myCol.Add("blue", "azul");
     96         /// myCol.Add("red", "rouge");   结果“red:rojo,rouge;green:verde;blue:azul”
     97         /// </summary>
     98         /// <param name="strCookieName">COOKIE对象名</param>
     99         /// <param name="iExpires">COOKIE对象有效时间(秒数),1表示永久有效,0和负数都表示不设有效时间,大于等于2表示具体有效秒数,31536000秒=1年=(60*60*24*365),</param>
    100         /// <param name="strDomain">作用域</param>
    101         /// <param name="KeyValue">键/值对集合</param>
    102         public static void SetObj(string strCookieName, int iExpires, NameValueCollection KeyValue, string strDomain)
    103         {
    104             HttpCookie objCookie = new HttpCookie(strCookieName.Trim());
    105             foreach (String key in KeyValue.AllKeys)
    106             {
    107                 objCookie[key] = Utils.EncodeURIComponent(KeyValue[key].Trim());
    108             }
    109             objCookie.Domain = strDomain.Trim();
    110             if (iExpires > 0)
    111             {
    112                 if (iExpires == 1)
    113                 {
    114                     objCookie.Expires = DateTime.MaxValue;
    115                 }
    116                 else
    117                 {
    118                     objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
    119                 }
    120             }
    121             HttpContext.Current.Response.Cookies.Add(objCookie);
    122         }
    123 
    124         /// 读取Cookie某个对象的Value值
    125         /// <summary>
    126         /// 读取Cookie某个对象的Value值,返回Value值,如果对象本就不存在,则返回字符串"CookieNonexistence"
    127         /// </summary>
    128         /// <param name="strCookieName">Cookie对象名称</param>
    129         /// <returns>Value值,如果对象本就不存在,则返回字符串"CookieNonexistence"</returns>
    130         public static string GetValue(string strCookieName)
    131         {
    132             if (HttpContext.Current.Request.Cookies[strCookieName] == null)   
    133               {
    134                   return "CookieNonexistence";
    135               }   
    136               else   
    137               {
    138                   return Utils.DecodeURIComponent(HttpContext.Current.Request.Cookies[strCookieName].Value);
    139               }
    140         }
    141         /// 读取Cookie某个对象的某个Key键的键值
    142         /// <summary>
    143         /// 读取Cookie某个对象的某个Key键的键值,返回Key键值,如果对象本就不存在,则返回字符串"CookieNonexistence",如果Key键不存在,则返回字符串"KeyNonexistence"
    144         /// </summary>
    145         /// <param name="strCookieName">Cookie对象名称</param>
    146         /// <param name="strKeyName">Key键名</param>
    147         /// <returns>Key键值,如果对象本就不存在,则返回字符串"CookieNonexistence",如果Key键不存在,则返回字符串"KeyNonexistence"</returns>
    148         public static string GetValue(string strCookieName,string strKeyName)
    149         {
    150             if (HttpContext.Current.Request.Cookies[strCookieName] == null)
    151             {
    152                 return "CookieNonexistence";
    153             }
    154             else
    155             {
    156                 string strObjValue = Utils.DecodeURIComponent(HttpContext.Current.Request.Cookies[strCookieName].Value);
    157                 string strKeyName2 = strKeyName+"=";
    158                 if (strObjValue.IndexOf(strKeyName2) == -1)
    159                 {
    160                     return "KeyNonexistence";
    161                 }
    162                 else
    163                 {
    164                     return Utils.DecodeURIComponent(HttpContext.Current.Request.Cookies[strCookieName][strKeyName]);
    165                 }
    166             }
    167         }
    168 
    169         /// 修改某个COOKIE对象某个Key键的键值 或 给某个COOKIE对象添加Key键 都调用本方法
    170         /// <summary>
    171         /// 修改某个COOKIE对象某个Key键的键值 或 给某个COOKIE对象添加Key键 都调用本方法,操作成功返回字符串"success",如果对象本就不存在,则返回字符串"CookieNonexistence"。
    172         /// </summary>
    173         /// <param name="strCookieName">Cookie对象名称</param>
    174         /// <param name="strKeyName">Key键名</param>
    175         /// <param name="KeyValue">Key键值</param>
    176         /// <param name="iExpires">COOKIE对象有效时间(秒数),1表示永久有效,0和负数都表示不设有效时间,大于等于2表示具体有效秒数,31536000秒=1年=(60*60*24*365)。注意:虽是修改功能,实则重建覆盖,所以时间也要重设,因为没办法获得旧的有效期</param>
    177         /// <returns>如果对象本就不存在,则返回字符串"CookieNonexistence",如果操作成功返回字符串"success"。</returns>
    178         public static string Edit(string strCookieName, string strKeyName, string KeyValue,int iExpires)
    179         {
    180             if (HttpContext.Current.Request.Cookies[strCookieName] == null)
    181             {
    182                 return "CookieNonexistence";
    183             }
    184             else
    185             {
    186                 HttpCookie objCookie = HttpContext.Current.Request.Cookies[strCookieName];
    187                 objCookie[strKeyName] = Utils.EncodeURIComponent(KeyValue.Trim());
    188                 objCookie.Domain = N0.Config.CommonConfig.strDomain; 
    189                 if (iExpires > 0)
    190                 {
    191                     if (iExpires == 1)
    192                     {
    193                         objCookie.Expires = DateTime.MaxValue;
    194                     }
    195                     else
    196                     {
    197                         objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
    198                     }
    199                 }
    200                 HttpContext.Current.Response.Cookies.Add(objCookie);
    201                 return "success";
    202             }
    203         }
    204 
    205         /// 删除COOKIE对象
    206         /// <summary>
    207         /// 删除COOKIE对象
    208         /// </summary>
    209         /// <param name="strCookieName">Cookie对象名称</param>
    210         public static void Del(string strCookieName)
    211         {
    212             HttpCookie objCookie = new HttpCookie(strCookieName.Trim());
    213             objCookie.Domain = N0.Config.CommonConfig.strDomain;
    214             objCookie.Expires = DateTime.Now.AddYears(-5);
    215             HttpContext.Current.Response.Cookies.Add(objCookie);
    216         }
    217         /// 删除某个COOKIE对象某个Key子键
    218         /// <summary>
    219         /// 删除某个COOKIE对象某个Key子键,操作成功返回字符串"success",如果对象本就不存在,则返回字符串"CookieNonexistence"
    220         /// </summary>
    221         /// <param name="strCookieName">Cookie对象名称</param>
    222         /// <param name="strKeyName">Key键名</param>
    223         /// <param name="iExpires">COOKIE对象有效时间(秒数),1表示永久有效,0和负数都表示不设有效时间,大于等于2表示具体有效秒数,31536000秒=1年=(60*60*24*365)。注意:虽是修改功能,实则重建覆盖,所以时间也要重设,因为没办法获得旧的有效期</param>
    224         /// <returns>如果对象本就不存在,则返回字符串"CookieNonexistence",如果操作成功返回字符串"success"。</returns>
    225         public static string Del(string strCookieName, string strKeyName, int iExpires)
    226         {
    227             if (HttpContext.Current.Request.Cookies[strCookieName] == null)
    228             {
    229                 return "CookieNonexistence";
    230             }
    231             else
    232             {
    233                 HttpCookie objCookie = HttpContext.Current.Request.Cookies[strCookieName];
    234                 objCookie.Values.Remove(strKeyName);
    235                 objCookie.Domain = N0.Config.CommonConfig.strDomain;
    236                 if (iExpires > 0)
    237                 {
    238                     if (iExpires == 1)
    239                     {
    240                         objCookie.Expires = DateTime.MaxValue;
    241                     }
    242                     else
    243                     {
    244                         objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
    245                     }
    246                 }
    247                 HttpContext.Current.Response.Cookies.Add(objCookie);
    248                 return "success";
    249             }
    250         }
    251     }
    252     /// Session操作类
    253     /// <summary>
    254     /// Session操作类
    255     /// </summary>
    256     public static class SessionCustom
    257     {
    258         /// 添加Session,调动有效期默认为23分钟
    259         /// <summary>
    260         /// 添加Session,调动有效期默认为23分钟
    261         /// </summary>
    262         /// <param name="strSessionName">Session对象名称</param>
    263         /// <param name="strValue">Session值</param>
    264         public static void Add(string strSessionName, string strValue)
    265         {
    266             HttpContext.Current.Session[strSessionName] = strValue;
    267             HttpContext.Current.Session.Timeout = 23;
    268         }
    269         /// 添加Session
    270         /// <summary>
    271         /// 添加Session
    272         /// </summary>
    273         /// <param name="strSessionName">Session对象名称</param>
    274         /// <param name="strValue">Session值</param>
    275         /// <param name="iExpires">调动有效期(分钟)</param>
    276         public static void Add(string strSessionName, string strValue, int iExpires)
    277         {
    278             HttpContext.Current.Session[strSessionName] = strValue;
    279             HttpContext.Current.Session.Timeout = iExpires;
    280         }
    281 
    282         /// 读取某个Session对象值
    283         /// <summary>
    284         /// 读取某个Session对象值
    285         /// </summary>
    286         /// <param name="strSessionName">Session对象名称</param>
    287         /// <returns>Session对象值</returns>
    288         public static string Get(string strSessionName)
    289         {
    290             if (HttpContext.Current.Session[strSessionName] == null)
    291             {
    292                 return null;
    293             }
    294             else
    295             {
    296                 return HttpContext.Current.Session[strSessionName].ToString();
    297             }
    298         }
    299 
    300         /// 删除某个Session对象
    301         /// <summary>
    302         /// 删除某个Session对象
    303         /// </summary>
    304         /// <param name="strSessionName">Session对象名称</param>
    305         public static void Del(string strSessionName)
    306         {
    307             HttpContext.Current.Session[strSessionName] = null;
    308         }
    309     }
    310 
    311     /// Cache操作类
    312     /// <summary>
    313     /// Cache操作类
    314     /// </summary>
    315     public static class CacheCustom
    316     {
    317         /// 简单创建/修改Cache,前提是这个值是字符串形式的
    318         /// <summary>
    319         /// 简单创建/修改Cache,前提是这个值是字符串形式的
    320         /// </summary>
    321         /// <param name="strCacheName">Cache名称</param>
    322         /// <param name="strValue">Cache值</param>
    323         /// <param name="iExpires">有效期,秒数(使用的是当前时间+秒数得到一个绝对到期值)</param>
    324         /// <param name="priority">保留优先级,1最不会被清除,6最容易被内存管理清除(1:NotRemovable;2:High;3:AboveNormal;4:Normal;5:BelowNormal;6:Low)</param>
    325         public static void Insert(string strCacheName, string strValue, int iExpires, int priority)
    326         {
    327             TimeSpan ts = new TimeSpan(0, 0, iExpires);
    328             CacheItemPriority cachePriority;
    329             switch (priority)
    330             {
    331                 case 6:
    332                     cachePriority = CacheItemPriority.Low;
    333                     break;
    334                 case 5:
    335                     cachePriority = CacheItemPriority.BelowNormal;
    336                     break;
    337                 case 4:
    338                     cachePriority = CacheItemPriority.Normal;
    339                     break;
    340                 case 3:
    341                     cachePriority = CacheItemPriority.AboveNormal;
    342                     break;
    343                 case 2:
    344                     cachePriority = CacheItemPriority.High;
    345                     break;
    346                 case 1:
    347                     cachePriority = CacheItemPriority.NotRemovable;
    348                     break;
    349                 default:
    350                     cachePriority = CacheItemPriority.Default;
    351                     break;
    352             }
    353             HttpContext.Current.Cache.Insert(strCacheName, strValue, null, DateTime.Now.Add(ts), System.Web.Caching.Cache.NoSlidingExpiration, cachePriority, null);
    354         }
    355 
    356         /// 简单读书Cache对象的值,前提是这个值是字符串形式的
    357         /// <summary>
    358         /// 简单读书Cache对象的值,前提是这个值是字符串形式的
    359         /// </summary>
    360         /// <param name="strCacheName">Cache名称</param>
    361         /// <returns>Cache字符串值</returns>
    362         public static string Get(string strCacheName)
    363         {
    364             return HttpContext.Current.Cache[strCacheName].ToString();
    365         }
    366 
    367         /// 删除Cache对象
    368         /// <summary>
    369         /// 删除Cache对象
    370         /// </summary>
    371         /// <param name="strCacheName">Cache名称</param>
    372         public static void Del(string strCacheName)
    373         {
    374             HttpContext.Current.Cache.Remove(strCacheName);
    375         }
    376     }
    View Code
    2.方案2
      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Text;
      5 using System.Web;
      6 using System.Collections.Specialized;
      7  
      8 namespace Core.Common.Web
      9 {
     10     /// <summary>
     11     /// Cookie静态操作类
     12     /// </summary>
     13     public static class Cookie
     14     {
     15         #region 静态方法
     16  
     17         /// <summary>
     18         /// 创建或修改COOKIE对象并赋Value值
     19         /// </summary>
     20         /// <param name="strCookieName">COOKIE对象名</param>
     21         /// <param name="strValue">COOKIE对象Value值</param>
     22         /// <remarks>
     23         /// 对COOKIE修改必须重新设Expires
     24         /// </remarks>
     25         public static void SetObject(string strCookieName, string strValue)
     26         {
     27             SetObject(strCookieName, 1, strValue);
     28         }
     29  
     30         /// <summary>
     31         /// 创建或修改COOKIE对象并赋Value值
     32         /// </summary>
     33         /// <param name="strCookieName">COOKIE对象名</param>
     34         /// <param name="iExpires">
     35         /// COOKIE对象有效时间(秒数)
     36         /// 1表示永久有效,0和负数都表示不设有效时间
     37         /// 大于等于2表示具体有效秒数
     38         /// 86400秒 = 1天 = (60*60*24)
     39         /// 604800秒 = 1周 = (60*60*24*7)
     40         /// 2593000秒 = 1月 = (60*60*24*30)
     41         /// 31536000秒 = 1年 = (60*60*24*365)
     42         /// </param>
     43         /// <param name="strValue">COOKIE对象Value值</param>
     44         /// <remarks>
     45         /// 对COOKIE修改必须重新设Expires
     46         /// </remarks>
     47         public static void SetObject(string strCookieName, int iExpires, string strValue)
     48         {
     49             HttpCookie objCookie = new HttpCookie(strCookieName.Trim());
     50             objCookie.Value = HttpContext.Current.Server.UrlEncode(strValue.Trim());
     51             if (iExpires > 0)
     52             {
     53                 if (iExpires == 1)
     54                 {
     55                     objCookie.Expires = DateTime.MaxValue;
     56                 }
     57                 else
     58                 {
     59                     objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
     60                 }
     61             }
     62             HttpContext.Current.Response.Cookies.Add(objCookie);
     63         }
     64  
     65         /// <summary>
     66         /// 创建COOKIE对象并赋多个KEY键值
     67         /// </summary>
     68         /// <param name="strCookieName">COOKIE对象名</param>
     69         /// <param name="iExpires">
     70         /// COOKIE对象有效时间(秒数)
     71         /// 1表示永久有效,0和负数都表示不设有效时间
     72         /// 大于等于2表示具体有效秒数
     73         /// 86400秒 = 1天 = (60*60*24)
     74         /// 604800秒 = 1周 = (60*60*24*7)
     75         /// 2593000秒 = 1月 = (60*60*24*30)
     76         /// 31536000秒 = 1年 = (60*60*24*365)
     77         /// </param>
     78         /// <param name="KeyValue">键/值对集合</param>
     79         public static void SetObject(string strCookieName, int iExpires, NameValueCollection KeyValue)
     80         {
     81             HttpCookie objCookie = new HttpCookie(strCookieName.Trim());
     82             foreach (string key in KeyValue.AllKeys)
     83             {
     84                 objCookie[key] = HttpContext.Current.Server.UrlEncode(KeyValue[key].Trim());
     85             }
     86             if (iExpires > 0)
     87             {
     88                 if (iExpires == 1)
     89                 {
     90                     objCookie.Expires = DateTime.MaxValue;
     91                 }
     92                 else
     93                 {
     94                     objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
     95                 }
     96             }
     97             HttpContext.Current.Response.Cookies.Add(objCookie);
     98         }
     99  
    100         /// <summary>
    101         /// 创建或修改COOKIE对象并赋Value值
    102         /// </summary>
    103         /// <param name="strCookieName">COOKIE对象名</param>
    104         /// <param name="iExpires">
    105         /// COOKIE对象有效时间(秒数)
    106         /// 1表示永久有效,0和负数都表示不设有效时间
    107         /// 大于等于2表示具体有效秒数
    108         /// 86400秒 = 1天 = (60*60*24)
    109         /// 604800秒 = 1周 = (60*60*24*7)
    110         /// 2593000秒 = 1月 = (60*60*24*30)
    111         /// 31536000秒 = 1年 = (60*60*24*365)
    112         /// </param>
    113         /// <param name="strDomain">作用域</param>
    114         /// <param name="strValue">COOKIE对象Value值</param>
    115         /// <remarks>
    116         /// 对COOKIE修改必须重新设Expires
    117         /// </remarks>
    118         public static void SetObject(string strCookieName, int iExpires, string strValue, string strDomain)
    119         {
    120             HttpCookie objCookie = new HttpCookie(strCookieName.Trim());
    121             objCookie.Value = HttpContext.Current.Server.UrlEncode(strValue.Trim());
    122             objCookie.Domain = strDomain.Trim();
    123             if (iExpires > 0)
    124             {
    125                 if (iExpires == 1)
    126                 {
    127                     objCookie.Expires = DateTime.MaxValue;
    128                 }
    129                 else
    130                 {
    131                     objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
    132                 }
    133             }
    134             HttpContext.Current.Response.Cookies.Add(objCookie);
    135         }
    136  
    137         /// <summary>
    138         /// 创建COOKIE对象并赋多个KEY键值
    139         /// </summary>
    140         /// <param name="strCookieName">COOKIE对象名</param>
    141         /// <param name="iExpires">
    142         /// COOKIE对象有效时间(秒数)
    143         /// 1表示永久有效,0和负数都表示不设有效时间
    144         /// 大于等于2表示具体有效秒数
    145         /// 86400秒 = 1天 = (60*60*24)
    146         /// 604800秒 = 1周 = (60*60*24*7)
    147         /// 2593000秒 = 1月 = (60*60*24*30)
    148         /// 31536000秒 = 1年 = (60*60*24*365)
    149         /// </param>
    150         /// <param name="strDomain">作用域</param>
    151         /// <param name="KeyValue">键/值对集合</param>
    152         public static void SetObject(string strCookieName, int iExpires, NameValueCollection KeyValue, string strDomain)
    153         {
    154             HttpCookie objCookie = new HttpCookie(strCookieName.Trim());
    155             foreach (string key in KeyValue.AllKeys)
    156             {
    157                 objCookie[key] = HttpContext.Current.Server.UrlEncode(KeyValue[key].Trim());
    158             }
    159             objCookie.Domain = strDomain.Trim();
    160             if (iExpires > 0)
    161             {
    162                 if (iExpires == 1)
    163                 {
    164                     objCookie.Expires = DateTime.MaxValue;
    165                 }
    166                 else
    167                 {
    168                     objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
    169                 }
    170             }
    171             HttpContext.Current.Response.Cookies.Add(objCookie);
    172         }
    173  
    174         /// <summary>
    175         /// 读取Cookie某个对象的Value值,返回Value值
    176         /// </summary>
    177         /// <param name="strCookieName">Cookie对象名称</param>
    178         /// <returns>Value值,如果对象本就不存在,则返回 null</returns>
    179         public static string GetValue(string strCookieName)
    180         {
    181             if (HttpContext.Current.Request.Cookies[strCookieName] == null)
    182             {
    183                 return null;
    184             }
    185             else
    186             {
    187                 return HttpContext.Current.Server.UrlDecode(HttpContext.Current.Request.Cookies[strCookieName].Value);
    188             }
    189         }
    190  
    191         /// <summary>
    192         /// 读取Cookie某个对象的某个Key键的键值
    193         /// </summary>
    194         /// <param name="strCookieName">Cookie对象名称</param>
    195         /// <param name="strKeyName">Key键名</param>
    196         /// <returns>Key键值,如果对象或键值就不存在,则返回 null</returns>
    197         public static string GetValue(string strCookieName, string strKeyName)
    198         {
    199             if (HttpContext.Current.Request.Cookies[strCookieName] == null)
    200             {
    201                 return null;
    202             }
    203             else
    204             {
    205                 string strObjValue = HttpContext.Current.Request.Cookies[strCookieName].Value;
    206                 string strKeyName2 = strKeyName + "=";
    207                 if (strObjValue.IndexOf(strKeyName2) == -1)
    208                 {
    209                     return null;
    210                 }
    211                 else
    212                 {
    213                     return HttpContext.Current.Server.UrlDecode(HttpContext.Current.Request.Cookies[strCookieName][strKeyName]);
    214                 }
    215             }
    216         }
    217  
    218         /// <summary>
    219         /// 修改某个COOKIE对象某个Key键的键值或给某个COOKIE对象添加Key键
    220         /// </summary>
    221         /// <param name="strCookieName">Cookie对象名称</param>
    222         /// <param name="strKeyName">Key键名</param>
    223         /// <param name="KeyValue">Key键值</param>
    224         /// <param name="iExpires">
    225         /// COOKIE对象有效时间(秒数)
    226         /// 1表示永久有效,0和负数都表示不设有效时间
    227         /// 大于等于2表示具体有效秒数
    228         /// 86400秒 = 1天 = (60*60*24)
    229         /// 604800秒 = 1周 = (60*60*24*7)
    230         /// 2593000秒 = 1月 = (60*60*24*30)
    231         /// 31536000秒 = 1年 = (60*60*24*365)
    232         /// </param>
    233         /// <returns>如果对象本就不存在,则返回 false</returns>
    234         public static bool Edit(string strCookieName, string strKeyName, string KeyValue, int iExpires)
    235         {
    236             if (HttpContext.Current.Request.Cookies[strCookieName] == null)
    237             {
    238                 return false;
    239             }
    240             else
    241             {
    242                 HttpCookie objCookie = HttpContext.Current.Request.Cookies[strCookieName];
    243                 objCookie[strKeyName] = HttpContext.Current.Server.UrlEncode(KeyValue.Trim());
    244                 if (iExpires > 0)
    245                 {
    246                     if (iExpires == 1)
    247                     {
    248                         objCookie.Expires = DateTime.MaxValue;
    249                     }
    250                     else
    251                     {
    252                         objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
    253                     }
    254                 }
    255                 HttpContext.Current.Response.Cookies.Add(objCookie);
    256                 return true;
    257             }
    258         }
    259  
    260         /// <summary>
    261         /// 删除COOKIE对象
    262         /// </summary>
    263         /// <param name="strCookieName">Cookie对象名称</param>
    264         public static void Delete(string strCookieName)
    265         {
    266             HttpCookie objCookie = new HttpCookie(strCookieName.Trim());
    267             objCookie.Expires = DateTime.Now.AddYears(-5);
    268             HttpContext.Current.Response.Cookies.Add(objCookie);
    269         }
    270  
    271         /// <summary>
    272         /// 删除某个COOKIE对象某个Key子键
    273         /// </summary>
    274         /// <param name="strCookieName">Cookie对象名称</param>
    275         /// <param name="strKeyName">Key键名</param>
    276         /// <param name="iExpires">
    277         /// COOKIE对象有效时间(秒数)
    278         /// 1表示永久有效,0和负数都表示不设有效时间
    279         /// 大于等于2表示具体有效秒数
    280         /// 86400秒 = 1天 = (60*60*24)
    281         /// 604800秒 = 1周 = (60*60*24*7)
    282         /// 2593000秒 = 1月 = (60*60*24*30)
    283         /// 31536000秒 = 1年 = (60*60*24*365)
    284         /// </param>
    285         /// <returns>如果对象本就不存在,则返回 false</returns>
    286         public static bool Delete(string strCookieName, string strKeyName, int iExpires)
    287         {
    288             if (HttpContext.Current.Request.Cookies[strCookieName] == null)
    289             {
    290                 return false;
    291             }
    292             else
    293             {
    294                 HttpCookie objCookie = HttpContext.Current.Request.Cookies[strCookieName];
    295                 objCookie.Values.Remove(strKeyName);
    296                 if (iExpires > 0)
    297                 {
    298                     if (iExpires == 1)
    299                     {
    300                         objCookie.Expires = DateTime.MaxValue;
    301                     }
    302                     else
    303                     {
    304                         objCookie.Expires = DateTime.Now.AddSeconds(iExpires);
    305                     }
    306                 }
    307                 HttpContext.Current.Response.Cookies.Add(objCookie);
    308                 return true;
    309             }
    310         }
    311  
    312         #endregion
    313     }
    314 }
    View Code
    岁月冲掉尘埃,淘汰虚无;待青春过后,褪尽芳华,是否有人珍惜遗留下的坦然和从容。
  • 相关阅读:
    团队冲刺2---个人工作总结八(6.1)
    团队冲刺2---个人工作总结七(5.31)
    opencv2 用imwrite 抽取并保存视频图像帧
    VMware 虚拟机CentOS 7 网路连接配置 无eth0简单解决办法
    个人总结
    人月神话阅读笔记03
    个人冲刺10
    人月神话阅读笔记02
    第十六周学习进度情况
    个人冲刺09
  • 原文地址:https://www.cnblogs.com/lushulihuachenyu/p/3461290.html
Copyright © 2020-2023  润新知