Срок действия пост-сессии Idhttp истекает

Я использую Idhttp (indy10 с delphi-xe2) для публикации формы, но получаю сообщение об истечении срока действия сеанса с сайта, хотя я уже установил диспетчер файлов cookie. Спасибо.

procedure TForm2.IdCookieManager1NewCookie(ASender: TObject; ACookie: TIdCookie;
var VAccept: Boolean);
begin
  ShowMessage(Acookie.CookieText);
end;

Результат от ShowMessage: ASP.NET_SessionId=enn1xnqde1o1rduedels5fqp; Path=/; Domain=www8.ticketingcentral.com; HttpOnly; Max-Age=252028195945; Expires=Fri, 31-Dec-9999 16:59:59 GMT


person Nguyễn Linh    schedule 17.07.2013    source источник
comment
Покажите исходный файл cookie, предоставленный HTTP-сервером, а не его интерпретацию TIdCookie.   -  person Remy Lebeau    schedule 17.07.2013


Ответы (1)


Когда в файле cookie присутствуют и Max-Age, и Expires, Max-Age имеет приоритет, а Expires игнорируется в соответствии с RFC 6265. Max-Age выражается в секундах от текущего времени. Значение Max-Age для 252028195945 составляет ~7991 год в будущем! Добавим, что текущие часы создают дату в 10004 году, которую TDateTime не может представлять (9999 — это самый высокий год, который он поддерживает). Таким образом, вы, вероятно, получаете проблему округления с датой истечения срока действия, установленной на отрицательное значение, таким образом представляя дату в прошлом, а не в будущем, таким образом, срок действия файла cookie истекает до того, как он может быть отправлен обратно на HTTP-сервер.

person Remy Lebeau    schedule 17.07.2013