2011-02-07 30 views
0

我目前正在爲我的公司完成一個C++ BHO項目,並且在這個過程中我發現了一個非常嚴重的錯誤,比我所希望的要多。我有一個BHO,目前使用SINK捕獲BeforeNavigate2,NavigateComplete2,NavigateError和其他一些事件,但我遇到了一個捕獲302重定向URL的問題。如何在IE8 BHO中捕獲級聯302重定向?

因此,舉例來說,可以說,我們有4個站點:

,有一個鏈接到B 一個站點B是302重定向到網站起始站點A C 一個據點C是302重定向到網站d, 最後的現場d

用戶啓動現場答:點擊網站B:B站點重定向到據點C,據點C重定向到網站d:用戶在網站捲起D.

在這種情況下,我BeforeNavigate2將捕獲站點B的URL,並且我的NavigateComplete將捕獲站點D的URL。但是我的BHO完全看不到C站點。在這種情況下,您可以在B和D之間添加任意數量的302,並且我無法捕獲它們中的任何一個。

注意:我在Internet Explorer 7中通過將DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION添加到GetHostInfo標誌來解決此問題,該標誌使每個重定向觸發一個BeforeNavigate2。但現在看來,IE8不一樣尊重這一標誌:(

+0

FWIW,DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION應該還是做工精細;你可能想聯繫Microsoft開發人員支持 – EricLaw 2011-02-08 00:08:02

+0

我也這麼認爲,但是我可以確認我的其他MSHTML覆蓋GetHostInfo工作正常,我嘗試了包括DOCHOSTUIFLAG_SCROLL_NO和滾動條消失,因此我知道一些標誌正常工作我的同事正在與Microsoft開發人員支持權限交談現在,希望他們能爲我提供一個答案 – Luke 2011-02-09 20:25:27

回答

0

使用IHttpNegotiate嘗試深入到HTTP但它作爲注入HTTP嗅探器到應用程序