gpt4 book ai didi

c# - 重定向后 ASP Net Core 2.2 session 丢失

转载 作者:行者123 更新时间:2023-12-03 14:48:57 26 4
gpt4 key购买 nike

我在 Startup.cs 中有以下 session 配置

    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 保持 session ID 和数据。我把一些预订信息放在那里。然后我将用户重定向到付款页面。成功付款后,用户将通过 POST 到 PaymentController Success 操作重定向回我的网站。

显然,这个来自支付平台的 POST 请求不包含 session cookie,所以我只是在 PaymentController Success 操作中执行 RedirectToAction("ContinueBooking","Payment") 。

重定向到操作后 - 浏览器发送 session cookie 但 session
这个时候好像丢了又分配了一个新的session Id,所有的数据都丢了。有什么办法可以防止这种情况吗?或者我应该只使用数据库在我的情况下在重定向之间存储数据(我可以通过支付终端绕过一些参数)?

最佳答案

如果两个应用程序在同一台服务器上,那么它们将是相同的 cookie,第一个 cookie 将被支付应用程序的 session cookie 覆盖。为避免这种情况,请自定义 cookie 名称:
services.AddSession(opt =>
{
opt.Cookie.Name = "MySessionCookie";
});

关于c# - 重定向后 ASP Net Core 2.2 session 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55814347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com