ASP Net Core 2.2会话在重定向后丢失

问题描述 投票:5回答:1

我在Startup.cs中具有以下会话配置

    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<CookiePolicyOptions>(options =>
        {
            options.CheckConsentNeeded = context => false;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });


        services.AddDistributedMemoryCache();

        services.AddSession(options =>
        {
            // Set a short timeout for easy testing.
            options.IdleTimeout = TimeSpan.FromSeconds(10);
            options.Cookie.HttpOnly = true;

            // Make the session cookie essential
            options.Cookie.IsEssential = true;
        });
     }

[一切正常,会话保留会话ID和数据。我在这里输入一些预订信息。然后,我将用户重定向到付款页面。付款成功后,用户将通过POST重定向到我的网站,并执行PaymentController Success操作。

[显然,来自支付平台的此POST请求不包含会话cookie,因此我只在PaymentController成功操作中执行RedirectToAction(“ ContinueBooking”,“ Payment”)。

重定向到操作后-浏览器发送会话Cookie,但会话似乎此时已丢失,并且分配了新的会话ID,所有数据都丢失了。有什么办法可以防止这种情况?还是我应该使用数据库在重定向之间存储数据(我可以通过付款终端绕过某些参数)?

c# asp.net-core session-cookies session-state
1个回答
0
投票

[如果两个应用程序都在同一台服务器上,那么它们都将是相同的cookie,并且第一个cookie将被付款应用程序的会话cookie覆盖。为了避免这种情况,请自定义Cookie名称:

services.AddSession(opt => { opt.Cookie.Name = "MySessionCookie"; });

© www.soinside.com 2019 - 2024. All rights reserved.