Как получить HttpContext.Current.Session в ASP. NET Core? - PullRequest
0 голосов
/ 26 мая 2020

Мне нужно перенести проект MVC в. net Core, я знаю, что System.Web удален из ASP. net Core. Мне нужно преобразовать HttpContext.Current.Session ["name"]! = Нулевой в asp. net core. Я добавил: использую Microsoft.AspNetCore.Http, но у меня ошибка.

Ответы [ 3 ]

1 голос
/ 26 мая 2020

Используйте это так:

HttpContext.Session.SetString("priceModel", JsonConvert.SerializeObject(customobject));
var priceDetails = HttpContext.Session.GetString("priceModel");

Убедитесь, что следующие точки в классе запуска:

  1. AddSession в методе ConfigureServices

    services.AddSession();
    
  2. Usesession в методе настройки:

    app.UseSession();
    
0 голосов
/ 27 мая 2020

Рекомендуемый подход - зарегистрировать зависимость с помощью встроенного контейнера внедрения зависимостей. Внедрить IHttpContextAccessor в соответствующую службу.

public class UserRepository : IUserRepository
    {
        private readonly IHttpContextAccessor _httpContextAccessor;

        public UserRepository(IHttpContextAccessor httpContextAccessor)
        {
            _httpContextAccessor = httpContextAccessor;
        }

        public void LogCurrentUser()
        {
            var username = _httpContextAccessor.HttpContext.Session.GetString("UserName");
            service.LogAccessRequest(username);
        }
    }

Подробнее см. по этой ссылке

0 голосов
/ 26 мая 2020

Вы тестировали Microsoft do c, образец как ниже

public const string SessionKeyName = "_Name";
public const string SessionKeyAge = "_Age";
const string SessionKeyTime = "_Time";

 // Requires: using Microsoft.AspNetCore.Http;
    if (string.IsNullOrEmpty(HttpContext.Session.GetString(SessionKeyName)))
    {
        HttpContext.Session.SetString(SessionKeyName, "The Doctor");
        HttpContext.Session.SetInt32(SessionKeyAge, 773);
    }

    var name = HttpContext.Session.GetString(SessionKeyName);
    var age = HttpContext.Session.GetInt32(SessionKeyAge);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...