2009-05-01 5 views
0

ウェブサイトと一緒に動作するC++アプリケーションを作成したいと思います。アプリケーションをウェブサイトと同期させておくために、私はユーザのデフォルトブラウザからいくつかのクッキーを読むことができるようにしたい。これを行う方法はありますか?C++のデフォルトブラウザからクッキーを読む

答えて

2

一般的な意味ではありません。クッキーストレージのための実際の定義されたフォーマットはありません。そのため、各ブラウザはCookieデータベースを任意のスタイルで好きな場所に自由に保存できます。

メインストリームブラウザ(IE、Firefox)にクッキー読み取り機能を実装することはできますが、一部のユーザーはそのままになります。また、ユーザーがCookieキャッシュをクリアしたり、複数のブラウザを使用したりするとどうなりますか?

アプリケーションをウェブサイトと同期させたい場合は、アプリケーションユーザーが設定したユーザー名/識別子を使って、そのサイトのWebサービス(RESTfulなど)に直接呼び出すことをお勧めします。このように、あなたは、せいぜい「多分」正しいだけの任意の第三者に縛られることはありません。

1

Firefoxの店舗cookies.txtそのすべてのクッキー:「既定のブラウザ」については http://www.velocityreviews.com/forums/t10844-cookies-in-firefox.html

、あなたはそこに別のブラウザの数のためのカスタムコードを記述する必要があるとしているが、それは確かではありません可能。参考までにhttp://www.aboutcookies.org/Default.aspx?page=2#ie7を参照してください。

+0

「確かに不可能です」と、タイプミス?文脈は確かに不可能ではないと言えるでしょう。 – Paul

2

はい、かなり些細です。 Webサービスhttp://example.com/capturecookieを定義しますか? tracking-guidこのGUIDの最後に送信されたCookieを返します。あなたのアプリケーションから、ランダムなGUIDを選んでください。既定のブラウザ(まず他のS.O.トピックを参照)でランダムなGUIDを使用してWebサービスを呼び出し、アプリケーション内から同じGUIDを使用してWebサービスを呼び出します。 2回目は、最初からクッキーを取り戻します。

"ウェブブラウザのクッキー"の正確な概念は、必然的に不正確です。たとえば、デフォルトのWebブラウザ(Opera)は、ホワイトリストに登録されたサイトのCookieを除いて、すべてのCookieが存在する場合はそれを削除するように設定されています。したがって、example.comのCookieがあるかどうかは、Operaが動作しているかどうかによって大きく異なります。

関連する問題