Идентификатор сессии изменяет каждый запрос в веб-интерфейсе ASP.NET core 2.1 - PullRequest
0 голосов
/ 14 декабря 2018

Я работаю над основным веб-приложением asp.net.Я не очень осведомлен о состоянии сеанса.Когда я вхожу в приложение, я получаю идентификатор сеанса и помещаю некоторые пользовательские данные в сеанс, используя HttpContext.Session.Эти значения находятся под текущим sessionid.И затем я отправил этот sessionid клиенту (браузеру).где я использовал angularjs.

Всякий раз, когда я отправлял запрос после входа в систему.Я отправил sessionid вместе с запросом в заголовке запроса.Но после того, как запрос достиг моего бэкэнда (WebApi), где я увидел еще один sessionid в HttpContext.Session.но у меня есть sessionid, который, имеющий эти значения сеанса.Но при использовании текущего идентификатора сеанса HttpContext.Session не удалось получить эти значения сеанса.

Должен ли я получить те значения сеанса по моему идентификатору сеанса, которые пришли вместе с заголовком запроса, или мне нужно изменить идентификатор сеанса HttpContext.Session или не разрешать изменять идентификатор сеанса HttpContext.Session для каждого запроса.Все, что я упомянул, пытался, но ничего не мог сделать. Что еще есть?Пожалуйста, кто-нибудь, помогите мне!Я мог видеть много ответов об этом в Интернете, но все для .Net Framework, а не для ASP.Net core 2.1.

Вот мой код,

Я установил значения сеанса в моем пользовательском контроллере.и после входа в систему я буду заполнять данные в моей странице создания цитаты и дать отправить.Тем временем я должен получить значения моего сеанса (которые я сохранил в методе входа контроллера пользователя) в моем методе создания контроллера цитаты.Таким образом, текущий идентификатор сеанса запроса изменяется в Httpcontext (даже если я использую IHttpContextAccessor). Поэтому не удалось получить значения моего сеанса

    public class UserController : Controller {
public string Login(User objUser)
{... 
HttpContext.Session.SetString("CompanyId", "1");
...}

}

public class QuoteController : Controller {
public string CreateQuote([FromBody]Quote objQuote)
{... 
var companyId = HttpContext.Session.GetString("CompanyId");
...}

}

1 Ответ

0 голосов
/ 14 декабря 2018

Это должно помочь.Вы можете получить доступ к сезону с помощью HttpContext .

. Проверьте этот пример работы со строкой seasson.

using Microsoft.AspNetCore.Http;

public class HomeController : Controller {
    public IActionResult Index()
    { 
    HttpContext.Session.SetString("Test", "Testing Session.");
    return View();
    }

    public IActionResult About()
    {
    ViewBag.Message = HttpContext.Session.GetString("Test");

    return View();
    }
}
...