【发布时间】:2016-04-09 11:41:41
【问题描述】:
当使用 DCEF3 TChromium 时,我怎样才能保持会话处于活动状态?
例如,如果我去一个网站并登录它,当我关闭我的应用程序并再次打开它时,我需要再次登录。我想让会话保持活跃,就像我使用 Google Chrome 一样。
我尝试在我的应用程序“uses”子句中添加“CefLib”并像下面的代码一样设置“CefCache”,但是虽然我可以看到文件存储在“cookies”文件夹中,但保留会话活动:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
ceflib in 'C:\app\dcef\src\ceflib.pas';
{$R *.res}
begin
CefCache := 'cookies';
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
提前致谢。
【问题讨论】:
-
您是否看到 TChromium 保存了任何 cookie?设置cookie存储路径的代码见stackoverflow.com/a/23723741/80901
-
@mjn 此链接上的解决方案似乎使用了过时版本的 DCEF,代码未编译。
-
好吧,随便...
-
好的,下一步是研究 TChromium 源代码,看看是否有办法在应用程序启动时从磁盘加载 cookie
-
@delphirules 这是因为 Facebook 默认使用基于会话的 cookie。在登录 Facebook 之前,您可以通过选中“记住我”复选框来告诉 Facebook 尝试创建永久 cookie。如果您的浏览器配置为允许接受永久 cookie,则关闭和重新打开您的应用程序不应要求您再次登录。除非 TChromium 可能有一个特殊设置来根据 TChromium 本身的当前活动会话保留 cookie(类似于 Internet Explorer 中的“InPrivate 浏览”)。
标签: delphi session-state chromium-embedded tchromium