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

50 lines
1.4 KiB
C#
Raw Normal View History

using System;
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)
{
var httpContext = _httpContextAccessor.HttpContext;
if (httpContext is null) return;
var cookieValue = httpContext.Request.Cookies[cookieName];
2020-04-20 12:20:47 +02:00
httpContext.Response.Cookies.Append(cookieName, cookieValue ?? string.Empty, new CookieOptions()
{
Expires = DateTime.Now.AddYears(-1)
});
}
2022-03-29 13:44:21 +02:00
public string? GetCookieValue(string cookieName)
{
return _httpContextAccessor.HttpContext?.Request.Cookies[cookieName];
}
public void SetCookieValue(string cookieName, string value)
{
_httpContextAccessor.HttpContext?.Response.Cookies.Append(cookieName, value, new CookieOptions()
{
});
}
public bool HasCookie(string cookieName)
{
return !(GetCookieValue(cookieName) is null);
}
}
}