【发布时间】:2018-12-17 20:09:48
【问题描述】:
我正在开发 asp.net 核心网络应用程序。我不太了解会话状态。当我登录应用程序时,我得到了会话 ID,并且我已经使用 HttpContext.Session 将一些用户数据推送到会话中。该值在当前 sessionid 下。然后我将该 sessionid 发送给客户端(浏览器)。我在哪里使用 angularjs。
每当我在登录后发送请求时。我已经在请求标头中发送了 sessionid 以及请求。但是在请求到达我的后端(WebApi)之后,我在 HttpContext.Session 中看到了另一个 sessionid。但我有我的 sessionid,它具有这些会话值。但是使用当前 HttpContext.Session 的 sessionid 无法获取这些会话值。
我是否必须通过请求标头附带的 sessionid 获取这些会话值,或者必须更改 HttpContext.Session 的 sessionid 或不允许为每个请求更改 HttpContext.Session 的 sessionid。我提到的一切都是尝试过但无能为力。还有什么?请有人帮助我!我可以在网上看到很多关于它的答案,但一切都是针对 .Net Framework 而不是针对 ASP.Net core 2.1。
这是我的代码,
我已经在我的用户控制器中设置了会话值。登录后,我将在我的报价创建页面中填写数据并提交。同时,我必须在我的报价控制器创建方法中获取我的会话值(我存储在用户控制器登录方法中)。所以当前请求 sessionid 在 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");
...}
}
【问题讨论】:
标签: angularjs asp.net-core-webapi asp.net-core-2.1