Ищу аналог HttpSessionStateBase в .NET Core 2.2
Переношу чужую бэкенд-библиотеку на WebAPI. В коде одного из контроллеров столкнулся с тем, что System.Web.Mvc.Session в NET Core отсутствует. А он нужен. Как я могу получить информацию о текущей сессии? Заранее спасибо.
Код, где возникла проблема. Там Session - как раз экземпляр HttpSessionStateBase
/// <summary>
/// Возвращает представление для страницы "пояснения"
/// </summary>
/// <param name="code">код для которого необходимо получить представление</param>
/// <returns>представление</returns>
public ActionResult Index(string code)
{
using (SessionConnection sessionConnection = SessionConnection.Connect())
{
if (!sessionConnection.Check())
{
Response.StatusCode = 500;
return View("~/Views/Error/InternalError");
}
ViewData["SessionID"] = Session.SessionID;
ViewData["IsActive"] = sessionConnection.IsAuthorized(Session.SessionID);
ViewData["passedCode"] = code;
sessionConnection.UpdateSession(Session.SessionID, Settings.SessionTimeout);
if (!string.IsNullOrEmpty(code) && code.Length >= 2)
{
string code2 = code.Substring(0, 2);
ViewData["data-group"] = code2;
using (SessionManager sessionManager = SessionManager.Connect())
{
if (!sessionManager.Check())
{
Response.StatusCode = 500;
return View("~/Views/Error/InternalError");
}
Dictionary<string, string> tree = sessionManager.TnvedRepository.LoadExpTree();
if (tree.TryGetValue(code2, out string value)) ViewData["data-section"] = value;
if (code.Length >= 4) ViewData["data-subgroup"] = code.Substring(0, 4);
}
}
}
ViewData["topNotification"] = HtmlParts.Parts.TopNotification;
return View();
}