WEBBrowserで新しいウィンドウ開くときにクッキーが引き継がれるようにするには

解決


かっつん  2004-10-31 04:18:22  No: 86363  IP: [192.*.*.*]

お世話になります。

WebBrowserコンポーネントを利用していますが、ページ中のリンクから新しいウィンドウが開かれたときに(IEのウィンドウ)、クッキー情報が引き継がれません。何か解決策はありませんか?

編集 削除
ひろ  2004-11-02 19:26:34  No: 86364  IP: [192.*.*.*]

自分のPC上にWebサーバを設置している場合については経験があります。

http://127.0.0.1

にアクセスしていると新しいウィンドウに引き継がれない場合があります。
Windows Update のパッチの影響があるみたいですが詳細は不明です。

とりあえず、

http://自分のPCのホスト名

として、イントラネットゾーンのWebサーバとして認識させることで回避しています。

編集 削除
かっつん  2004-11-04 23:12:27  No: 86365  IP: [192.*.*.*]

私の場合はちょっと違うようです。試しにYahooページをWebBrowserコンポーネントを貼り付けたVBフォームで表示してYahooにログインし、その状態で新しいウィンドウが開くとログインしていない状態になってしまいます。通常のIEで表示の場合はこんなことはないのですが...。

編集 削除
魔界の仮面弁士  2004-11-04 23:29:43  No: 86366  IP: [192.*.*.*]

もしかして、新しいウィンドウを、規定の動作(IEが起動される)のままにしていませんか?
もしそうだとしたら、同一プロセス内で開かせる(ppDispに対して、自アプリ内の別のWebBrowserを割り当てる)ようにすると、セッションクッキーを引き継いでくれるかも知れませんよ。

編集 削除
かっつん  2004-11-13 21:11:21  No: 86367  IP: [192.*.*.*]

時間がかかりましたが、ppDispに対して自アプリを指定するとクッキーが引き継がれました。
自アプリ間では引き継がれるようです。
しかし、目的はIEへの引継ぎなので、IEで起動する場合に引き継がれるようにしたいのですが方法はありますか?

編集 削除
魔界の仮面弁士  2004-11-15 10:33:17  No: 86368  IP: [192.*.*.*]

アウトプロセスにてセッションクッキーを引き継ぐことは
できないように思えます。セキュリティホールになりかねないので。
無理に引き継ぐなら、WinSock等でローカルプロキシをたてて、
送受信時のCookieヘッダを書き換えれば、擬似的に引き継げるかも
しれませんが、これも、SSLを使用されるとどうしようもないかと。

処理が変わってしまいますが、WebBrowserオブジェクトを使わず、
最初から InternetExplorerオブジェクトで処理しては如何でしょう?
# InternetExplorerをWebBrowserのように見せかけるのは、
# 苦労するかも知れませんが…。

編集 削除
かっつん  2004-11-15 20:41:23  No: 86369  IP: [192.*.*.*]

いろいろご助言ありがとうございます。現在業務画面でWebBrowserを利用しているので、新規画面にもWebBrowserを使ってみるようにします。
業務画面にInternetExplorerが貼り付けられれば良かったのですがそんな方法はないですもんね。

編集 削除