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