0

我正在使用 Idhttp(带有 delphi-xe2 的 indy10)发布表单,但我从网站收到会话过期消息,尽管我已经设置了 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

4

1 回答 1

2

当cookie 中同时存在Max-Age和时,根据 RFC 6265 优先并被忽略。以当前时钟时间的秒数表示。未来的值是~7991 年!添加当前时钟在 10004 年创建一个日期,该日期不能表示(9999 是它支持的最高年份)。因此,您可能会遇到将到期日期设置为负值的舍入问题,从而表示过去的日期,而不是未来的日期,从而在 cookie 可以发送回 HTTP 服务器之前使其过期。ExpiresMax-AgeExpiresMax-AgeMax-Age252028195945TDateTime

于 2013-07-17T19:54:10.973 回答