c # Asp.net получает время истечения Cookie, установленное в JavaScript всегда возвращает 01.01.0001 - PullRequest
7 голосов
/ 18 октября 2011

Я использую функцию javascript для хранения cookie:

createCookie("teaser", "teaser", 7);
function createCookie(name, value, days) {
var expires = "";
if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    expires = "; expires=" + date.toGMTString();
}
document.cookie = name + "=" + value + expires + "; path=/";
return value;
}

И когда я проверяю файлы cookie в моем браузере, срок действия тизера cookie правильно устанавливается: 25 октября 2011 г. 16: 12: 17

Но когда в C # я иду, чтобы получить значение, срок действия устанавливается на 01.01.0001.

    var cookie = Request.Cookies["teaser"];
    if (cookie != null && teaserList.Count() > 0)
    {

        cookie.Expires is 01.01.0001

Любая подсказка?

Ответы [ 2 ]

7 голосов
/ 18 октября 2011

Egghead сообщает, что:

Браузер отвечает за управление файлами cookie, а время и дата истечения срока действия cookie помогают браузеру управлять своим хранилищем файлов cookie.Поэтому, хотя вы можете прочитать имя и значение файла cookie, вы не можете прочитать дату и время истечения срока действия файла cookie.Когда браузер отправляет информацию куки на сервер, браузер не включает информацию об истечении срока действия.(Свойство файла cookie Expires всегда возвращает значение даты и времени, равное нулю.) Если вас беспокоит дата окончания срока действия файла cookie, вы должны сбросить его.

3 голосов
/ 18 октября 2011

Браузер не передает дату истечения срока действия куки на серверы, это соответствует спецификации HTTP.

Браузеры отправляют только имя и значение куки только .

Свойство Expires объекта cookie используется только в том случае, если задано значение срок действия файла cookie, для которого в ответе будет записано , а не read в запросе.

При чтении файла cookie значение Expires всегда имеет значение null. Вы можете убедиться в этом сами, изучив заголовки HTTP. Если вы действительно хотите прочитать значение файла cookie, срок действия которого истек, попробуйте записать его в самом значении или использовать другой файл cookie со значением даты истечения срока действия (вам нужно будет синхронизировать их самостоятельно).

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