CookieHelper.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using Microsoft.Extensions.DependencyInjection;
  3. using Microsoft.AspNetCore.Http;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Web;
  9. using YiSha.Util.Extension;
  10. namespace YiSha.Util
  11. {
  12. public class CookieHelper
  13. {
  14. /// <summary>
  15. /// 写cookie值
  16. /// </summary>
  17. /// <param name="sName">名称</param>
  18. /// <param name="sValue">值</param>
  19. /// <param name="httpOnly">true代表浏览器的js不能获取到的cookie</param>
  20. public void WriteCookie(string sName, string sValue, bool httpOnly = true)
  21. {
  22. IHttpContextAccessor hca = GlobalContext.ServiceProvider?.GetService<IHttpContextAccessor>();
  23. CookieOptions option = new CookieOptions();
  24. option.Expires = DateTime.Now.AddDays(30);
  25. option.HttpOnly = httpOnly;
  26. hca?.HttpContext?.Response.Cookies.Append(sName, sValue, option);
  27. }
  28. /// <summary>
  29. /// 写cookie值
  30. /// </summary>
  31. /// <param name="sName">名称</param>
  32. /// <param name="sValue">值</param>
  33. /// <param name="expires">过期时间(分钟)</param>
  34. /// <param name="httpOnly">true代表浏览器的js不能获取到的cookie</param>
  35. public void WriteCookie(string sName, string sValue, int expires, bool httpOnly = true)
  36. {
  37. IHttpContextAccessor hca = GlobalContext.ServiceProvider?.GetService<IHttpContextAccessor>();
  38. CookieOptions option = new CookieOptions();
  39. option.Expires = DateTime.Now.AddMinutes(expires);
  40. option.HttpOnly = httpOnly;
  41. hca?.HttpContext?.Response.Cookies.Append(sName, sValue, option);
  42. }
  43. /// <summary>
  44. /// 读cookie值
  45. /// </summary>
  46. /// <param name="sName">名称</param>
  47. /// <returns>cookie值</returns>
  48. public string GetCookie(string sName)
  49. {
  50. IHttpContextAccessor hca = GlobalContext.ServiceProvider?.GetService<IHttpContextAccessor>();
  51. return hca?.HttpContext?.Request.Cookies[sName];
  52. }
  53. /// <summary>
  54. /// 删除Cookie对象
  55. /// </summary>
  56. /// <param name="sName">Cookie对象名称</param>
  57. public void RemoveCookie(string sName)
  58. {
  59. IHttpContextAccessor hca = GlobalContext.ServiceProvider?.GetService<IHttpContextAccessor>();
  60. hca?.HttpContext?.Response.Cookies.Delete(sName);
  61. }
  62. }
  63. }