session 始终为 null google chrome net core mvc iframe
session always null google chrome netcore mvc iframe
我有一个网络核心 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 上使用上面的代码时,session 不起作用。我还尝试了其他 samesite mods(Lax、Strict、Unspecified)。
你能看到代码中的错误吗?或者你知道这样做的方法吗?
使用options.CheckConsentNeeded = context => false;
代替options.CheckConsentNeeded = context => true;
尝试一下,我认为它会起作用。
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
我有一个网络核心 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 上使用上面的代码时,session 不起作用。我还尝试了其他 samesite mods(Lax、Strict、Unspecified)。 你能看到代码中的错误吗?或者你知道这样做的方法吗?
使用options.CheckConsentNeeded = context => false;
代替options.CheckConsentNeeded = context => true;
尝试一下,我认为它会起作用。
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});