Cookies.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. using NIU.Core;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Web;
  8. namespace CP.Common
  9. {
  10. /// <summary>
  11. /// Cookie类
  12. /// </summary>
  13. public class Cookies
  14. {
  15. /// <summary>
  16. /// cookie域
  17. /// </summary>
  18. private static string _Domain = ".niu.cn";
  19. /// <summary>
  20. /// cookie名称
  21. /// </summary>
  22. public static string _CookieAdminName = "_NIU_ADMIN";
  23. /// <summary>
  24. /// cookie名称(权限)
  25. /// </summary>
  26. public static string _AuthorityName = "_NIU_ADMIN_Authority";
  27. /// <summary>
  28. /// 获取cookie
  29. /// </summary>
  30. /// <param name="cookieName">cookie名称</param>
  31. /// <returns></returns>
  32. public static string Get(string cookieName, string domain = ".niu.cn")
  33. {
  34. if (HttpContext.Current.Request.Cookies != null && HttpContext.Current.Request.Cookies[cookieName] != null)
  35. {
  36. //HttpContext.Current.Request.Cookies[cookieName].Domain = domain;
  37. string value = HttpContext.Current.Request.Cookies[cookieName].Value.ToString();
  38. return Encryption.Get(value, _CookieAdminName);
  39. }
  40. return "";
  41. }
  42. /// <summary>
  43. /// 写入cookie
  44. /// </summary>
  45. /// <param name="cookieName">cookie名称</param>
  46. /// <param name="cookieValue">cookie值</param>
  47. /// <param name="Expires">过期时间(分钟)</param>
  48. public static void Set(string cookieName, string cookieValue, int Expires = 0, string domain = ".niu.cn")
  49. {
  50. HttpCookie cookie = HttpContext.Current.Request.Cookies[cookieName];
  51. if (cookie == null)
  52. {
  53. cookie = new HttpCookie(cookieName);
  54. }
  55. cookie.Value = Encryption.Set(cookieValue, _CookieAdminName);
  56. //cookie.Domain = domain;
  57. cookie.HttpOnly = true;
  58. if (Expires > 0)
  59. cookie.Expires = DateTime.Now.AddMinutes(Expires);
  60. else
  61. cookie.Expires = DateTime.Now.AddMinutes(60);
  62. HttpContext.Current.Response.AppendCookie(cookie);
  63. }
  64. /// <summary>
  65. /// 清除COOKIES
  66. /// </summary>
  67. public static void Delete(string cookieName, string domain = ".niu.cn")
  68. {
  69. //HttpContext.Current.Response.Cookies[cookieName].Domain = domain;
  70. HttpContext.Current.Response.Cookies[cookieName].Expires = DateTime.Now.AddDays(-600);
  71. }
  72. /// <summary>
  73. /// 移除Cookies
  74. /// </summary>
  75. /// <param name="cookiesName"></param>
  76. public static void RemoveCookies(string cookiesName)
  77. {
  78. if (string.IsNullOrEmpty(cookiesName))
  79. return;
  80. HttpCookie cookie = HttpContext.Current.Request.Cookies[cookiesName];
  81. if (null != cookie)
  82. {
  83. //HttpContext.Current.Response.Cookies[cookiesName].Domain = _Domain;
  84. HttpContext.Current.Response.Cookies[cookiesName].Expires = DateTime.Now.AddDays(-600);
  85. HttpContext.Current.Response.Cookies[cookiesName].Values.Clear();
  86. cookie.Expires = DateTime.Now.AddDays(-5);
  87. HttpContext.Current.Response.Cookies.Add(cookie);
  88. }
  89. }
  90. /// <summary>
  91. /// 写Cookie值
  92. /// </summary>
  93. /// <param name="strName">键</param>
  94. /// <param name="strValue">名</param>
  95. /// <param name="httponly">httponly默认true</param>
  96. /// <param name="expires">默认480分钟</param>
  97. public static void WriteCookie(string strName, string strValue, int expires = 480, bool httponly = true, string domain = ".niu.cn")
  98. {
  99. HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
  100. if (cookie == null)
  101. {
  102. cookie = new HttpCookie(strName);
  103. }
  104. cookie.HttpOnly = httponly;
  105. //cookie.Domain = domain;
  106. cookie.Value = HttpContext.Current.Server.UrlEncode(strValue);
  107. if (expires > 0)
  108. cookie.Expires = DateTime.Now.AddMinutes(expires);
  109. HttpContext.Current.Response.Cookies.Add(cookie);
  110. }
  111. public static string GetCookieBy(string strName, string domain = ".niu.cn")
  112. {
  113. if (HttpContext.Current.Request.Cookies != null && HttpContext.Current.Request.Cookies[strName] != null)
  114. {
  115. //HttpContext.Current.Request.Cookies[strName].Domain = domain;
  116. return HttpContext.Current.Server.UrlDecode(HttpContext.Current.Request.Cookies[strName].Value.ToString());
  117. }
  118. return "";
  119. }
  120. }
  121. }