Файлы cookie не сохраняются на внешних сайтах - PullRequest
0 голосов
/ 03 октября 2018

Основной сеанс Asp.net всегда пуст, когда я вызываю свой сервер через GitHub.com из моего расширения Google.

Если я делаю то же самое через мой собственный сайт localhost: 8080, то он работает нормально, нокажется, что запросы от внешних доменов не сохраняют cookie для сеанса.

Startup.cs

services.AddSession(options => new SessionOptions
{
    Cookie = new CookieBuilder
    {
        SameSite = SameSiteMode.None,
        IsEssential = true,
        Name = ".onboardor",
    }
});

app.UseSession(new SessionOptions
{
    Cookie = new CookieBuilder
    {
        SameSite = SameSiteMode.None,
        IsEssential = true,
        Name = ".onboardor",
    }
});

Не знаю, почему это два способа передачи параметров сеанса ...

public IActionResult Test()
{
    var value = HttpContext.Session.GetString("Test");

    HttpContext.Session.SetString("Test", "randomValue");

    return null;
}

js:

fetch("https://localhost:8080/test", {
  credentials: "include",
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json",
  },
  method: "get",
});

enter image description here

Вы можете видеть на изображении выше, что cookie на самом деле есть, но, похоже, получитудаляется сразу при обновлении страницы.

1 Ответ

0 голосов
/ 05 октября 2018

Разобрался.Сессия не работала должным образом, потому что для CORS вам необходимо установить одинаковый режим для файлов cookie.

        app.UseCookiePolicy(new CookiePolicyOptions
        {
            MinimumSameSitePolicy = SameSiteMode.None
        });

        app.UseSession(new SessionOptions {
            Cookie = new CookieBuilder
            {
                Name = ".AspNetCore.Session",
                SameSite = SameSiteMode.None,
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...