Не удалось установить срок действия файла cookie для DateTime.Max (31 декабря 9999)? - PullRequest
4 голосов
/ 02 мая 2009

Мы поддерживаем устаревший код, который удаляет cookie и устанавливает срок действия DateTime.MaxValue:

HttpCookie cookie = new HttpCookie(cookieName, value);
cookie.Expires = DateTime.MaxValue;

Похоже, что в некоторых браузерах (которые мы не регистрируем) этот cookie-файл немедленно истекает - или может даже не удаляться. Согласно MSDN, DateTime.MaxValue - 31 декабря 9999. Есть ли какие-либо проблемы с браузером, связанные с установкой срока действия файла cookie на эту дату?

Правильный ответ - изменить срок годности, но на данный момент мы не можем изменить производственный код.

1 Ответ

7 голосов
/ 02 мая 2009

Если бы мне пришлось случайно угадать, почему это не работает, я бы сказал, что это как-то связано с временем эпохи Unix . Технически это значение будет переполнено (на 32-разрядных компьютерах) после 19 января 2038 г. в 3:14:07 по Гринвичу - поэтому следующая секунда после этого будет интерпретироваться как 1 января 1970 г. 0:00:01 по Гринвичу.

Вполне возможно, что предоставленное вами будущее время фактически преобразуется в прошлое.

Опять же, это полное предположение, и, надеюсь, я смогу проверить его в ближайшее время, когда на моем домашнем компьютере будет загружен VWD Express 2008.

Edit:

При поиске этой проблемы я обнаружил похожую ошибку:

http://framework.zend.com/issues/browse/ZF-5690

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