.netcore 2.2 Проблема переменной сеанса при вызове страницы из iframe - PullRequest
0 голосов
/ 04 марта 2019

мы можем запустить переменную сеанса, когда напрямую подключаемся с ее локального адреса.но мы не можем установить или получить переменные из сеанса, пока мы вызываем из iframe, вот наш startup.cs

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 голосов
/ 04 марта 2019

вот правильный ответ

настроить параметр сеанса, например

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

, теперь он работает

и настроить часть аутентификации

services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(options =>
      {
          options.LoginPath = new PathString("/login");
          options.Cookie.SameSite = SameSiteMode.None;
          options.Cookie.SecurePolicy = CookieSecurePolicy.None;
      });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...