.netcore 2.2从iframe调用页面时出现会话变量问题

时间:2019-03-04 14:46:00

标签: .net session asp.net-core asp.net-core-mvc asp.net-core-2.2

当我们直接从其本地地址登录时,我们可以运行会话变量。但是,当我们从iframe进行调用时,我们无法设置会话中的变量或从会话中获取变量,这是我们的启动。

services.Configure<CookiePolicyOptions>(options =>
      {
          // This lambda determines whether user consent for non-essential cookies is needed for a given request.
          options.CheckConsentNeeded = context => false;
          options.MinimumSameSitePolicy = SameSiteMode.None;
      });

      ////////////////

      services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
      {
          builder.AllowAnyOrigin()
                 .AllowAnyMethod()
                 .AllowAnyHeader()
                 .AllowCredentials()
                 ;
      }));

      services.AddMemoryCache();
      services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
          .AddJsonOptions(options =>
          {
              options.SerializerSettings.ContractResolver
                  = new Newtonsoft.Json.Serialization.DefaultContractResolver();
          })
          .AddSessionStateTempDataProvider()
          .AddRazorPagesOptions(o =>
          {
              o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
          });
      ;

      services.AddDistributedMemoryCache();
      services.AddSession(options =>
      {
          options.Cookie.IsEssential = true;

      });


      services.AddHttpContextAccessor();

使用此设置。我们可以很好地运行我们的网站,但是当我们从其他域的iframe调用它时。我们可以访问网站,但无法编写会话变量。

需要帮助!

1 个答案:

答案 0 :(得分:0)

这是正确的答案

将会话选项配置为

extract_branches

现在可以使用

并配置身份验证部分

services.AddSession(options =>
    {
        options.Cookie.IsEssential = true;
        options.Cookie.SecurePolicy = CookieSecurePolicy.None;
        options.Cookie.SameSite = SameSiteMode.None;
    });