Подтвердить что ты не робот

Qt WebKit и постоянные файлы cookie

У меня есть mainwindow, в нем у меня есть один QWebView. Я хочу сделать определенный веб-сайт (например, www.kdkdkkd.com) cookie постоянным, поэтому каждый раз, когда пользователь закрывает и обновляет браузер, ему не нужно снова входить в систему.

Спасибо,

4b9b3361

Ответ 1

Вам нужно установить свой собственный "Cookie Jar".

  • Используйте QNetworkAccessManager::setCookieJar.
  • Расширить QNetworkCookieJar - поскольку он не сохраняет файлы cookie по умолчанию при закрытии браузера:

Как только объект QNetworkCookieJarудалены, все куки файлы, которые он хранит, будут также отбрасывается. Если вы хотите сохранить куки, вы должны извлечь из этот класс и реализовать сохранение диск в ваш собственный формат хранения. (Из QNetworkCookieJar документация.)

Вы можете сделать это, нажав на постоянное хранилище на каждом QNetworkCookieJar::setCookiesFromUrl (самый безопасный, но самый медленный) или только тогда, когда окно браузера закрытый (более быстрый, но менее безопасный, как если бы вы выходите из анонимной банки cookie, не будет сохранен).

Обратите внимание, что некоторые файлы cookie не должны сохраняться, вы можете использовать QNetworkCookie::isSessionCookie, чтобы определить это.

Ответ 2

Существует официальный Qt Demo, называемый Browser". Он реализует класс CookieJar, который поддерживает сохранение и загрузку файлов cookie в .ini файл, используя стек QSettings.

Ответ 3

После того, как cookie (ы), зарегистрированные в NAM (NetworkAccessManager), установите для него веб-просмотр:

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