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;
        });