.net HttpCookie класс / сессия печенье вопросы - PullRequest
6 голосов
/ 10 марта 2009

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

Ответы [ 3 ]

14 голосов
/ 10 марта 2009

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

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

или

Response.Cookies["name"] = "value";
7 голосов
/ 10 марта 2009

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

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

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

5 голосов
/ 08 октября 2009

Срок действия куки:

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

Чтобы превратить файл cookie в файл cookie сеанса, просто назначьте MinValue.

httpCookie.Expires = DateTime.MinValue;

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

CallMeLaNN

...