.чистая HttpCookie класса / сессии вопросов печеньку


Меня интересует, как превратить обычный объект HttpCookie в файл cookie, срок действия которого истекает в конце сеанса. Я не заинтересован в ком-то showing me HttpContext.Session. Как выглядит файл cookie сеанса в заголовках ответов по сравнению с обычным файлом cookie? Как я могу изменить HttpCookie, чтобы он истек в конце сеанса? Спасибо!

3 6

3 ответа:

Сессионный файл cookie-это просто файл cookie, у которого не установлен срок действия.

Response.Cookies.Add(new HttpCookie("name", "value"));

Или:

Response.Cookies["name"] = "value";

Файл cookie с истекшим сроком действия DateTime.Срок действия MinValue (1/1/0001) истекает в конце сессии. Это дата истечения срока действия по умолчанию для файла cookie в asp.net.

Вы можете принудительно удалить файл cookie с клиента, установив дату истечения срока действия до "сейчас" (DateTime.Сейчас.AddDays(-1d)), в этом случае он будет удален, когда он попадет в клиент.

Если бы у нас были nullable типы, когда HttpCookie был закодирован, я думаю, что нулевая дата приравнивалась бы к файл cookie на основе сеанса и все остальное будет переводиться в значение истечения срока действия, но это не так.

Истечение срока действия печенья:

  • файл cookie сеанса-дата истечения срока действия должна быть DateTime.MinValue, которое равно 1/1/0001 00: 00: 00
  • обычный файл cookie (Time limited) - датой истечения срока действия является любая будущая дата, равная или больше текущей даты-времени.Сейчас.
  • удаленные файлы cookie-в любое время между датами и временем.MinValue и DateTime.Сейчас.

Чтобы изменить куки в сеансовый куки, просто назначьте MinValue.

httpCookie.Expires = DateTime.MinValue;

Если ваш файл cookie новый. Значение по умолчанию для DateTime должно быть значение datetime.MinValue и не нужно устанавливать.

CallMeLaNN