Files
Umbraco-CMS/src/Umbraco.Web.Common/AspNetCore/AspNetCoreCookieManager.cs

35 lines
1.2 KiB
C#
Raw Normal View History

using Microsoft.AspNetCore.Http;
using Umbraco.Cms.Core.Web;
namespace Umbraco.Cms.Web.Common.AspNetCore;
public class AspNetCoreCookieManager : ICookieManager
{
private readonly IHttpContextAccessor _httpContextAccessor;
public AspNetCoreCookieManager(IHttpContextAccessor httpContextAccessor) =>
_httpContextAccessor = httpContextAccessor;
public void ExpireCookie(string cookieName)
{
HttpContext? httpContext = _httpContextAccessor.HttpContext;
if (httpContext is null)
{
return;
}
var cookieValue = httpContext.Request.Cookies[cookieName];
httpContext.Response.Cookies.Append(cookieName, cookieValue ?? string.Empty,
new CookieOptions { Expires = DateTime.Now.AddYears(-1) });
}
public string? GetCookieValue(string cookieName) => _httpContextAccessor.HttpContext?.Request.Cookies[cookieName];
public void SetCookieValue(string cookieName, string value, bool httpOnly) =>
_httpContextAccessor.HttpContext?.Response.Cookies.Append(cookieName, value, new CookieOptions { HttpOnly = httpOnly });
public bool HasCookie(string cookieName) => !(GetCookieValue(cookieName) is null);
}