У меня есть следующая конфигурация сеанса в 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.
После перенаправления на действие - браузер отправляет куки сеанса, но сеанс
кажется, что в это время теряется и назначается новый идентификатор сеанса, все данные теряются. Есть ли способ предотвратить это? Или мне просто использовать базу данных для хранения данных между перенаправлениями в моем случае (я могу обойти некоторые параметры через платежный терминал)?