2011-02-07 3 views
0

저는 현재 회사에서 C++ BHO 프로젝트를 마무리 중입니다. 그 과정에서 나중에 예상했던 것보다 훨씬 중요한 버그를 발견했습니다. BeforeNavigate2, NavigateComplete2, NavigateError 및 기타 여러 이벤트를 캡처하는 데 현재 SINK를 사용하는 BHO가 있지만 302 리디렉션 URL을 캡처하는 문제가 발생합니다.IE8 BHO에서 계단식 302 리디렉션을 캡처하는 방법은 무엇입니까?

그래서 예를 들어, 우리는 4 개 사이트를 가지고 있다고 할 수 있습니다 :

(302) 사이트로 리디렉션하는 사이트 B를 B로 링크가 시작 사이트 A를 C (302)는 사이트 D로 리디렉션하는 사이트 C,

사용자가 사이트 A를 시작하는 최종 사이트 D : 클릭 사이트 B : 사이트 B 사이트 C로 리디렉션은 사이트 C 사이트 D로 리디렉션 : 사용자가이 시나리오에서는 사이트에서 D.

을 바람, 내 BeforeNavigate2는 사이트 B의 URL을 캡처하고 NavigateComplete는 사이트 D의 URL을 캡처합니다. 그러나 사이트 C는 내 BHO에게 완전히 보이지 않습니다. 이 시나리오에서는 B와 D 사이에 302를 추가 할 수 있으며 그 중 어떤 것도 캡처 할 수 없습니다.

참고 : 모든 리디렉션 트리거를 BeforeNavigate2로 만드는 GetHostInfo 플래그에 DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION을 추가하여 Internet Explorer 7에서이 문제를 해결했습니다. . 그러나 IE8 응용 프로그램에 HTTP 스니퍼를 주입과 동일한를 IHttpNegotiate를 사용하여 HTTP에 깊은하려고이 플래그 :(

+0

FWIW는 DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION는 여전히 잘 작동한다. 당신이 할 수 있습니다 Microsoft Developer support에 문의하십시오 – EricLaw

+0

GetHostInfo에서 다른 MSHTML 덮어 쓰기가 제대로 작동하는지 확인할 수 있습니다. DOCHOSTUIFLAG_SCROLL_NO 및 스크롤바가 사라져서 일부 플래그가 작동하는 것을 알았습니다. 제 동료가 Microsoft 개발자 지원 센터에 직접 문의하고 있습니다. 이제 희망 사항은 저에게 답을 줄 것입니다. – Luke

답변

0

을 존중하지만하지 않습니다 나타납니다

+0

이 부분을 요약하기 위해 Microsoft 개발자 지원부에 연락하여 IE8의 버그로 판명되었습니다.이 버그는 IE7 또는 IE9에는없고 개발자 w 문서 호스트를 트리거하기에는 너무 일찍 리다이 렉트를 빠져 나간 리턴 호출로 범위를 좁힐 수 있습니다. 그래서 우리 회사는 IHttpNegotiate를 사용하여 상처를 입었고 모든 것이 훌륭하게 작동합니다. – Luke

관련 문제