Основная сессия использования .Net в классе - PullRequest
0 голосов
/ 23 мая 2018

Я использую Session в ядре .Net, однако я могу установить и получить данные Session в контроллере как

HttpContext.Session.SetString("User", "True");
var user = HttpContext.Session.GetString("User");

Но когда я пытаюсь использовать тот же код в конкретном классе, яЯ не в состоянии сделать это.Не отображается GetString или SetString после HttpContext.Session .

Не работает после

HttpContext.Session

Пожалуйста, помогите Спасибо

1 Ответ

0 голосов
/ 23 мая 2018

Это потому, что HttpContext является членом Controller, а вне контроллера это имя типа.См. Доступ к текущему HttpContext в ASP.NET Core , как внедрить IHttpContextAccessor в класс и получить доступ к сеансу оттуда.

Однако, как правило, нежелательно использовать сеанс вбиблиотека классов.Вам лучше передать конкретные значения на ваш библиотечный вызов.Таким образом, вместо доступа к настройкам в методе библиотеки вы делаете:

// controller code

var user = HttpContext.Session.GetString("User");
var libraryResult = _fooLibrary.Bar(user);
HttpContext.Session.SetString("UserResult", libraryResult);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...