离开后,会话状态未保存

时间:2018-06-19 14:46:43

标签: session asp.net-core state

我使用HttpContext.Session保存用户的一些发票信息, 当他/她去第三个站点支付费用并返回我的站点时,所有会话数据均为null,我不知道他/她的发票是什么! 我应该如何实现?

1 个答案:

答案 0 :(得分:0)

您可以注册您的应用以使用SessionState Temporary Data Provider

Startup.cs

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");
}