我使用HttpContext.Session
保存用户的一些发票信息,
当他/她去第三个站点支付费用并返回我的站点时,所有会话数据均为null
,我不知道他/她的发票是什么!
我应该如何实现?
答案 0 :(得分:0)
您可以注册您的应用以使用SessionState
Temporary Data Provider
在ConfigureServices
services.AddMvc().AddSessionStateTempDataProvider();
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddSession();
在Configure
app.UseSession();
我用此控制器对其进行了测试
public IActionResult Index()
{
var on = HttpContext.Session.GetString("ordernumber");
HttpContext.Session.SetString("ordernumber", "123456");
return Redirect("http://google.com");
}
重定向到google之后,如果我随后导航回localhost,则可以看到on
包含"123456"
如果您想在视图中显示它,则可以注入我们先前注册的HttpContextAccessor
:
@using Microsoft.AspNetCore.Http;
@inject IHttpContextAccessor HttpContextAccessor
@{
ViewData["Title"] = @HttpContextAccessor.HttpContext.Session.GetString("ordernumber");
}