我有這個horribly stripped delphi code,基本上登錄到服務器,保存的Cookie在全球 cookie管理器,然後在線程上傳文件(採用Delphi 2010 +印10.4736)笨「sess_time_to_update」和印餅乾
每個線程讀取全局cookie管理器並上傳文件。服務器端,我使用PHP與CodeIgniter。
一切正常,除了CodeIgniter有這個sess_time_to_update設置在配置。
此* sess_time_to_update *默認爲300秒之後CodeIgniter completely regenerate the session id。
這是好爲了安全,但這也使我在indy登錄/ cookie信息無效。
我的問題是:如何避免這個沒有調整* sess_time_to_update *? Indy中是否有一些設置讓它知道會話ID?我應該添加一個計時器並每隔300秒(或更少)自動重新登錄?讓Indy處理這種情況的最佳方法是什麼?
謝謝!
編輯 FWIW:全球cookie管理器包含something like this
我沒有pb訪問**舊**會話id(來自全局cookie管理器),但我無法在響應中找到** new ** session id(即.' IdHTTP.Response.RawHeaders .Text')。你的意思是我應該從PHP腳本發送新的會話ID? – TheDude 2012-03-23 05:38:49
如果CodeIgniter正在更改會話ID,並希望延長的會話能夠保持打開狀態,那麼它需要以某種方式將新的會話ID發送回客戶端,否則將無法更改ID;它可能會完全將會話過期。 Cookie是將這種信息發送給客戶的常用方式。你還怎麼知道這個變化? – 2012-03-23 14:39:09
是的,我知道**,但正如我所說的,我無法在Indy.Response或Indy的CookieManager中找到** new ** session id。所以,除非我重新登錄**或**明確發送會話ID再次cookie管理器將堅持舊會話ID – TheDude 2012-03-26 11:59:55