.Net Core cookie не будет установлен - PullRequest
0 голосов
/ 22 сентября 2018

В проекте .Net Core MVC: Я пытаюсь установить простой файл cookie самым простым способом в своем действии контроллера, но не могу заставить его быть постоянным и отображаться в браузере.

Мой код:

public IActionResult IndexPost()
{
    var option = new CookieOptions();
    option.Expires = DateTime.Now.AddMinutes(60);
    Response.Cookies.Append(cookieName, "SomeCookieValue", option);
    return View();
}

Но в браузере (Chrome) я его не вижу и даже не читаю с помощью:

var cookieValue = Request.Cookies[cookieName];

(cookieName - это набор переменных с именем cookie)

При использовании расширения Chrome "EditThisCookie" я могу установить его вручную, чтобы убедиться, что Request.Cookies [cookieName] действительно работает, поэтомуошибка как-то в приложении-cookie моего кода.

1 Ответ

0 голосов
/ 23 сентября 2018

Начиная с ASP.NET Core 2.1, шаблоны включают в себя совместимую с GDPR конфигурацию вашего CookiePolicyOptions в 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 => true;
    options.MinimumSameSitePolicy = SameSiteMode.None;
});

Опция CheckConsentNeeded true предотвратитлюбые несущественные файлы cookie, отправляемые в браузер (без заголовка Set-Cookie) без явного разрешения пользователя.

Вы можете либо изменить это поведение, либо пометить свой файл cookie как необходимый, установив свойство IsEssentialtrue при его создании:

var options = new CookieOptions
{
    Expires = DateTime.Now.AddMinutes(60),
    IsEssential = true
};

Response.Cookies.Append("rudeCookie", "I don't need no user to tell me it's ok.", options);

Подробнее здесь: https://docs.microsoft.com/en-us/aspnet/core/security/gdpr?view=aspnetcore-2.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...