Qt WebKit和永久Cookie

时间:2011-03-23 14:04:23

标签: c++ qt cookies webkit qwebview

我有一个主窗口,其中有一个QWebView。 我想永久保留某个网站(例如www.kdkdkkd.com)cookie,因此每次用户关闭并重新打开浏览器时,他都不需要再次登录。

谢谢,

3 个答案:

答案 0 :(得分:26)

您需要设置自己的“Cookie Jar”。

  1. 使用QNetworkAccessManager::setCookieJar
  2. 扩展QNetworkCookieJar - 因为在浏览器关闭时默认情况下不会保留Cookie:
  3.   

    QNetworkCookieJar对象出现后   删除,它持有的所有cookie将是   也丢弃了。如果你想保存   饼干,你应该来自   这个类并实现了保存   磁盘到您自己的存储格式。   (来自QNetworkCookieJar documentation。)

    您可以通过推送到每个QNetworkCookieJar::setCookiesFromUrl上的永久存储(最安全但最慢)或仅在浏览器窗口关闭时执行此操作(整体速度更快但安全性更低,就好像退出异常时,cookie jar不会保存)。

    请注意,some cookies不应该被保留,您可以使用QNetworkCookie::isSessionCookie来确定这一点。

答案 1 :(得分:4)

有一个名为“Browser”的官方Qt演示。它实现了一个CookieJar类,它使用QSettings堆栈支持将cookie保存和加载到.ini文件。

答案 2 :(得分:1)

一旦在NAME(QNetworkAccessManager)中注册了cookie,请将webview设置为使用它:

myWebView->page()->setNetworkAccessManager(myNAM);