using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Features; using Umbraco.Net; namespace Umbraco.Web.Common.AspNetCore { internal class AspNetCoreSessionIdResolver : ISessionIdResolver { private readonly IHttpContextAccessor _httpContextAccessor; public AspNetCoreSessionIdResolver(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } public string SessionId { get { var httpContext = _httpContextAccessor?.HttpContext; // If session isn't enabled this will throw an exception so we check var sessionFeature = httpContext?.Features.Get(); return sessionFeature != null ? httpContext?.Session?.Id : "0"; } } } }