如何在IE8 BHO中捕获级联302重定向?

时间:2011-02-07 22:46:07

标签: c++ com internet-explorer-8 bho

我目前正在为我的公司完成一个C ++ BHO项目,并且在此过程中我发现了一个非常严重的错误,而不是我希望的。我有一个BHO,目前使用SINK捕获BeforeNavigate2,NavigateComplete2,NavigateError和其他几个事件,但我遇到了捕获302重定向URL的问题。

例如,假设我们有4个站点:

起始网站A,其中包含指向B的链接 302重定向到站点C的站点B. 302重定向到站点D的站点C, 最后的网站D

用户在网站A上启动:点击网站B:网站B重定向到网站C,网站C重定向到网站D:用户在网站D结束。

在这种情况下,我的BeforeNavigate2将捕获站点B的URL,我的NavigateComplete将捕获站点D的URL。但是我的BHO完全看不到网站C.在这种情况下,您可以在B和D之间添加任意数量的302,我无法捕获其中任何一个。

注意:我在Internet Explorer 7中通过向GetHostInfo标志添加DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION来解决此问题,这使得每个重定向都触发了BeforeNavigate2。但似乎IE8不尊重这个标志:(

1 个答案:

答案 0 :(得分:0)

尝试使用IHttpNegotiate深入到HTTP。但这与在应用程序中注入HTTP嗅探器相同。