分享

.net 完美操作cookies

 悟静 2011-02-02
发布时间:2010年03月17日点击数: 313 次佚名
  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.  } 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约