.Net Core cookie не будет установлен

В проекте .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 Append моего кода.

Вы проверили вкладку сети Chrome в параметрах разработчика? Вы должны увидеть, что запрос IndexPost устанавливает там заголовок cookie.

Sigge 22.09.2018 17:54

Я вижу запрос, но нет, cookie туда не включен ... странно. Так почему-то мой код Response.Cookies.Append (cookieName, "SomeCookieValue", option) не влияет на ответ ?!

Persyl 22.09.2018 21:19
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
13
2
12 663
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Начиная с ASP.NET Core 2.1, шаблоны включают в Startup.cs конфигурацию вашего CookiePolicyOptions, соответствующую GDPR, а именно:

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 как важный, установив для свойства IsEssential значение true при его создании:

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

Да спасибо! Это сработало! Странно, я нигде не видел этого в своих поисках ответа.

Persyl 23.09.2018 07:40

Извините, но если у вас есть соединение HTTPS, это нормально. в моем тесте я был правильным путем.

Marinpietri 02.08.2020 01:37

Отлично, это то, чего мне не хватало.

Garry 20.05.2021 21:01

Другие вопросы по теме