Я создаю специализированный браузер на основе Qtwebkit. Я хотел бы сохранить информацию о сеансе при входе в аутентифицированные веб-сайты и снова загрузить эту информацию при перезапуске браузера. Как я могу это сделать?Как загрузить информацию о сеансе в qtwebkit?
ответ
Большинство веб-сайтов используют файлы cookie для хранения идентификатора сеанса. Вы можете сохранить куки с помощью
QList<QNetworkCookie> QNetworkCookieJar::allCookies() const
и загрузить их обратно с помощью
void QNetworkCookieJar::setAllCookies(const QList<QNetworkCookie> & cookieList)
Вы можете получить QNetworkCookieJar
с помощью
QNetworkCookieJar * QNetworkAccessManager::cookieJar() const
и вы можете получить QNetworkAccessManager
используется QWebPage
использованием
QNetworkAccessManager * QWebPage::networkAccessManager() const
идентификатор сеанса может также сохраняться как часть URL-адреса или в поле скрытой формы на странице. Если сайт использует первое, этого достаточно, чтобы сохранить URL-адрес, и если он использует последний, вам тоже нужно сохранить страницу.
Задача становится более сложной сейчас, когда можно использовать Web Storage. Если сайт использует веб-хранилище, вы должны позаботиться о его сохранении и восстановлении в дополнение ко всем вышеперечисленным данным. Вы можете установить место для хранения в автономном режиме с использованием
void QWebSettings::setOfflineStoragePath(const QString & path)
и получить его с помощью
QString QWebSettings::offlineStoragePath()
Вы можете получить более подробную информацию о webkit-qt списке рассылки и на IRC канале #qtwebkit на freenode.net
Вы можете обратиться to QNetworkCookieJar Функция виртуального члена bool CookieHandler::setCookiesFromUrl (const QList<QNetworkCookie> & cookieList, const QUrl & url)
может использоваться для сохранения файлов cookie в вашем собственном постоянном хранилище. Например,
bool CookieHandler::setCookiesFromUrl (const QList<QNetworkCookie> & cookieList, const QUrl & url) {
foreach(QNetworkCookie i, cookieList) {
// probably don't want to store session cookies
if (!i.isSessionCookie()) {
// save the cookie to own storage format
}
}
return true;
}
защищенный член функции void QNetworkCookieJar::setAllCookies (const QList<QNetworkCookie> & cookieList)
используется для восстановления куки с вашего собственного хранилища в QNetworkCookieJar поскольку QNetworkCookieJar не осуществляет постоянное хранения: он сохраняет только кук в памяти. пример кода,
void CookieHandler::setAllCookiestoJar() {
// retrieve cookies from local database
QList<QNetworkCookie> cookieList = this->getCookiesFromLocalDB();
this->setAllCookies(cookieList);
// check if they are correctly loaded
QList<QNetworkCookie> cookieList_tmp = this->allCookies();
foreach(QNetworkCookie i, cookieList_tmp)
qDebug() << i.toRawForm(QNetworkCookie::Full);
}
- 1. Невозможно загрузить информацию о сеансе PHP
- 2. Как прочитать информацию о сеансе в ServiceStack
- 3. IE8 потеряет информацию о сеансе
- 4. как можно удалить всю информацию о сеансе?
- 5. Сохранять информацию о пользователе в сеансе?
- 6. Получить информацию о сеансе от Request.GetResponse()
- 7. Невозможно получить информацию о сеансе пульсации
- 8. Новая сессия, хранящая информацию о старом сеансе
- 9. Получить информацию о сеансе для удаленного компьютера?
- 10. Как получить информацию о пользователе в сеансе сеанса без состояния
- 11. Как получить информацию о сеансе с другой страницы в PHP?
- 12. Как загрузить информацию о файле в Zend1
- 13. Как передать информацию о сеансе между Java/Servlet и .NET.
- 14. Как получить уже связанную информацию о сеансе со стороны акцептора
- 15. Как получить информацию о сеансе из браузера с помощью javascript
- 16. Facebook Graph Как получить общедоступную информацию о параллельном сеансе?
- 17. Как PHP, наконец, сохранит информацию о сеансе с кодом ниже?
- 18. Как загрузить статическую информацию о конфигурации
- 19. «Хорошо», чтобы хранить информацию о кредитной карте в сеансе?
- 20. Клиентский PHP-вызов .NET webservice содержит информацию о сеансе
- 21. Безопасно хранить полную информацию о пользователе в сеансе с Sails.js?
- 22. Где хранить информацию о сеансе в Java WS
- 23. Автоматически добавлять информацию о сеансе к модели в Sails.js
- 24. Где я размещаю информацию о сеансе? В HttpServletRequest.setAttribute()?
- 25. Passport.js - хранить информацию в сеансе
- 26. Могу ли я хранить информацию о сеансе на сервере websocket
- 27. Где сохранить подробную информацию о сеансе пользователя для приложения EmberJS?
- 28. Информации о сеансе теряется
- 29. Невозможно установить информацию о сеансе на Redis с Servicestack
- 30. Получить текущую информацию о сеансе, используя отдельный связанный файл php