2011-02-07 6 views
0

私は現在、私の会社のためのC++ BHOプロジェクトを完成させています。そして、私が望んでいたよりもかなり後のかなりの重大なバグを発見しました。私は現在、シンクを使用してBeforeNavigate2、NavigateComplete2、NavigateError、および他のいくつかのイベントをキャプチャするBHOを持っていますが、302のリダイレクトURLをキャプチャする問題が発生しています。IE8 BHOでカスケード302リダイレクトをキャプチャする方法は?

したがって、たとえば、私たちは4つのサイト持って言うことができます:、302は302のサイトDにリダイレクトすることをサイトC サイトCにリダイレクトすることをB へのリンクサイトBがあり

開始サイトAを

ユーザがサイトAで始まり、最終サイトD:クリックサイトB:サイトB、サイトCにリダイレクトは、サイトC、サイトDにリダイレクト:ユーザーはこのシナリオでサイトにD.

を巻き取る、私BeforeNavigate2はサイトBのURLを取得し、NavigateCompleteはサイトDのURLを取得します。しかし、サイトCは私のBHOには完全に見えません。このシナリオでは、BとDの間に任意の数の302を追加することができ、それらをキャプチャすることはできません。

注:Internet Explorer 7では、すべてのリダイレクトトリガーをBeforeNavigate2にするGetHostInfoフラグにDOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATIONを追加して解決しました。 。。しかし、それはIE8は、このフラグを尊重していない:(

+0

FWIW表示され、DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATIONはまだ正常に動作する必要があり、あなたがしたいこと – EricLaw

+0

私もそうだと思っていましたが、GetHostInfoの他のMSHTML上書きがうまく動作することを確認できます。DOCHOSTUIFLAG_SCROLL_NOとスクロールバーが含まれていましたので、いくつかのフラグが動作することを知りました。 – Luke

答えて

0

それは同じアプリケーションにHTTPスニッファを注入するなどIHttpNegotiateを使用してHTTPの奥深くに試してみてくださいしかし

+0

これを集計すると、マイクロソフトのデベロッパーサポートに連絡し、これがIE8のバグであることが判明しました。このバグはIE7またはIE9には存在せず、開発者wリダイレクトを終了してドックホストをトリガーするのが早すぎるリターンコールに絞り込むことができます。だから、私の会社はIHttpNegotiateを使用して巻いた。 – Luke

関連する問題