Idhttp следсесията изтича

Използвам Idhttp (indy10 с delphi-xe2), за да публикувам формуляр, но получавам съобщение за изтекла сесия от сайта, въпреки че вече съм задал мениджър на бисквитки. Благодаря ти.

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
Моля, покажете оригиналната бисквитка, както е предоставена от HTTP сървъра, а не интерпретацията й от TIdCookie.   -  person Remy Lebeau    schedule 17.07.2013


Отговори (1)


Когато и Max-Age, и Expires присъстват в бисквитка, Max-Age има приоритет и Expires се игнорира, съгласно RFC 6265. Max-Age се изразява в секунди от текущото време на часовника. Max-Age стойност на 252028195945 е ~7991 години в бъдещето! Като добавим, че текущият часовник създава дата в годината 10004, която TDateTime не може да представи (9999 е най-високата година, която поддържа). Така че вероятно ще получите проблем със закръгляването, като датата на изтичане е зададена на отрицателна стойност, като по този начин представлява дата в миналото, а не в бъдещето, като по този начин бисквитката изтича, преди да може да бъде изпратена обратно към HTTP сървъра.

person Remy Lebeau    schedule 17.07.2013