Qtwebkit을 기반으로 한 전문 브라우저를 구축하고 있습니다. 인증 된 웹 사이트에 로그인 할 때 세션 정보를 저장하고 브라우저를 다시 시작할 때이 정보를 다시로드하고 싶습니다. 어떻게해야합니까?세션 정보를 qtwebkit에로드하려면 어떻게해야합니까?
답변
대부분의 웹 사이트는 세션 ID를 저장하기 위해 쿠키를 사용합니다. 당신은
QList<QNetworkCookie> QNetworkCookieJar::allCookies() const
를 사용하여 쿠키를 저장하고
void QNetworkCookieJar::setAllCookies(const QList<QNetworkCookie> & cookieList)
를 사용하여 다시로드 당신은
QNetworkCookieJar * QNetworkAccessManager::cookieJar() const
를 사용하여 QNetworkCookieJar
를 얻을 수 있으며
QNetworkAccessManager * QWebPage::networkAccessManager() const
세션 ID를 사용하여 QWebPage
에 의해 수 있습니다 사용 QNetworkAccessManager
를 얻을 수 있습니다 또한 url의 일부로 저장되거나 페이지의 숨겨진 양식 필드에 저장됩니다. 사이트가 전자 메일을 사용하는 경우 URL을 저장하기에 충분하며 전자 메일을 사용하는 경우 페이지 자체도 저장해야합니다.
Web Storage을 사용할 수 있으면 작업이 더 복잡해집니다. 사이트가 웹 저장소를 사용하는 경우 위의 모든 데이터 외에도 저장 및 복원을 처리해야합니다. 당신은 당신은 webkit-qt 메일 링리스트 및 freenode.net에 #qtwebkit의 IRC 채널에 좀 더 많은 정보를 얻을 수 있습니다
void QWebSettings::setOfflineStoragePath(const QString & path)
를 사용하여 오프라인 저장 위치를 설정하고
QString QWebSettings::offlineStoragePath()
를 사용하여 얻을 수
당신은 참조 할 수 있습니다 ~ QNetworkCookieJar 가상 멤버 함수 bool CookieHandler::setCookiesFromUrl (const QList<QNetworkCookie> & cookieList, const QUrl & url)
은 쿠키를 사용자의 영구 저장소에 저장하는 데 사용할 수 있습니다. 예를 들어 ,
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. ASP.NET의 세션 ID에서 사용자 정보를 얻으려면 어떻게해야합니까?
- 2. 어디에서 세션 정보를 입력합니까? HttpServletRequest.setAttribute()?
- 3. 정보를 기밀로 유지하려면 어떻게해야합니까?
- 4. 페이지 정보를 얻기위한 Facebook 세션 만들기
- 5. 두 도메인간에 세션 정보를 공유하고 있습니까?
- 6. 원격 컴퓨터의 세션 정보를 가져 옵니까?
- 7. 앱에서 배터리 정보를 얻으려면 어떻게해야합니까?
- 8. 은행 계좌에서 정보를 다운로드하려면 어떻게해야합니까?
- 9. 새 오브젝트의 정보를 얻으려면 어떻게해야합니까?
- 10. SML에서 유형 정보를 인쇄하려면 어떻게해야합니까?
- 11. PHP를 사용하여 정보를 얻으려면 어떻게해야합니까?
- 12. 터치 이벤트에서 정보를 얻으려면 어떻게해야합니까?
- 13. Jodatime : 최신 정보를 유지하려면 어떻게해야합니까?
- 14. 세션? 사용자 행을 표시하려면 어떻게해야합니까?
- 15. Javascript로 세션 키를 할당하려면 어떻게해야합니까?
- 16. 세션 남용을 추적하고 제거하려면 어떻게해야합니까?
- 17. PHP 세션 오류를 피하려면 어떻게해야합니까?
- 18. 세션 손실 상태를 시뮬레이트하려면 어떻게해야합니까?
- 19. 서블릿간에 세션 상태를 공유하려면 어떻게해야합니까?
- 20. Spring MVC에서 세션 시작시 어떻게해야합니까?
- 21. 양식을 제출하여이 페이지에 정보를 보내지 않고 $ _POST 정보를 얻으려면 어떻게해야합니까?
- 22. facebook connect를 통한 성공적인 인증 후 URL에서 세션 정보를 숨기려면 어떻게해야합니까?
- 23. AJAX를 사용하여 세션 타임 아웃을 재설정하지 않고 서버에서 정보를 얻으려면 어떻게해야합니까?
- 24. 실패한 로그인 정보를 사용자에게 표시하려면 어떻게해야합니까?
- 25. C#의 OpenOffice에서 성능 정보를 얻으려면 어떻게해야합니까?
- 26. 내 정보를 XML 파일에 쓰려면 어떻게해야합니까?
- 27. Magento - 리뷰에 평점 정보를 추가하려면 어떻게해야합니까?
- 28. Powershell 공급자 드라이브 정보를 유지하려면 어떻게해야합니까?
- 29. 페이지의 뒤집힌 부분에 정보를 넣으려면 어떻게해야합니까?
- 30. XmlDocument에서 노드에 대한 스키마 정보를 얻으려면 어떻게해야합니까?