Сессия ASP Net Core 2.2 потеряна после перенаправления - PullRequest
2 голосов
/ 23 апреля 2019

У меня есть следующая конфигурация сеанса в 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;
        });
     }

Все работает нормально, и сессия сохраняет его Session Id и данные. Я размещаю там информацию о бронировании. Затем я перенаправляю пользователя на страницу оплаты. После успешной оплаты пользователь перенаправляется обратно на мой сайт через действие POST to PaymentController Success.

Очевидно, что этот POST-запрос от платежной платформы не содержит сессионных файлов cookie, поэтому я просто выполняю RedirectToAction («ContinueBooking», «Payment») внутри действия PaymentController Success.

После перенаправления на действие - браузер отправляет куки сеанса, но сеанс кажется, что в это время теряется и назначается новый идентификатор сеанса, все данные теряются. Есть ли способ предотвратить это? Или мне просто использовать базу данных для хранения данных между перенаправлениями в моем случае (я могу обойти некоторые параметры через платежный терминал)?

...