Как перехватить 302 перенаправления в IE8 BHO? - PullRequest
0 голосов
/ 08 февраля 2011

В настоящее время я заканчиваю проект CHO BHO для своей компании, и обнаружил довольно серьезную ошибку намного позже, чем я надеялся. У меня есть BHO, который в настоящее время использует SINK для захвата BeforeNavigate2, NavigateComplete2, NavigateError и некоторых других событий, но я столкнулся с проблемой захвата 302 URL перенаправления.

Например, предположим, у нас есть 4 сайта:

стартовый сайт A, имеющий ссылку на B сайт B, который 302 перенаправляет на сайт C сайт C, который 302 перенаправляет на сайт D, финальный сайт D

Пользователь запускается на сайте A: нажимает на сайт B: сайт B перенаправляет на сайт C, сайт C перенаправляет на сайт D: пользователь попадает на сайт D.

В этом случае мой BeforeNavigate2 будет захватывать URL-адрес сайта B, а мой NavigateComplete будет захватывать URL-адрес сайта D. Но сайт C совершенно невидим для моего BHO. В этом сценарии вы можете добавить любое число 302 между B и D, и я не смогу захватить ни одного из них.

Примечание. Я решил эту проблему в Internet Explorer 7, добавив DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION к флагу GetHostInfo, что делало каждый триггер перенаправления BeforeNavigate2. Но, похоже, IE8 не уважает этот флаг: (

1 Ответ

0 голосов
/ 16 февраля 2011

Попробуйте углубиться в HTTP, используя IHttpNegotiate.Но это то же самое, что вводить снифер HTTP в ваше приложение.

...