【发布时间】:2021-02-21 02:27:03
【问题描述】:
我有一个网络核心 MVC 项目,它为外部网站提供 iframe。但是在其他网站上使用 iframe 时会话会丢失。
services.AddSession(opt=> {
opt.Cookie.SameSite = SameSiteMode.None;
opt.Cookie.HttpOnly = true;
opt.Cookie.IsEssential = true;
});
services.Configure<CookiePolicyOptions>(options =>
{
options.MinimumSameSitePolicy = SameSiteMode.None;
options.CheckConsentNeeded = context => true;
});
services.ConfigureApplicationCookie(opt =>
{
opt.Cookie.IsEssential = true;
opt.Cookie.HttpOnly = true;
opt.Cookie.Name = "MyCookie";
opt.Cookie.SameSite = SameSiteMode.None;
opt.LoginPath = new PathString("/Home/Index");
});
services.AddAntiforgery(o => {
o.SuppressXFrameOptionsHeader = true;
o.Cookie.SameSite = SameSiteMode.None;
}) ;
当我在 google chrome 上使用上面的代码时,会话不起作用。我还尝试了其他相同站点的 mods(Lax、Strict、Unspecified)。 你能看到代码中的错误吗?或者你知道怎么做吗?
【问题讨论】:
-
嘿,@Baris 删除您的缓存(旧 cookie),然后重试。
-
不适合我
-
你是否正确安装了
Microsoft.AspNetCore.Session包?
标签: google-chrome asp.net-core session iframe asp.net-core-mvc