MFC CHTMLVIEW - 혼합 된 콘텐츠 경고를 억제 하시겠습니까?
-
22-12-2019 - |
문제
이것은 MFC 및 CHTMLVIEW이지만 모든 IE 웹 제어 사용에 적용됩니다.
웹 컨트롤이 일부 사이트의 페이지로 탐색 할 때 HTTP / HTTPS 혼합 컨텐츠 경고 팝업을 얻는 중입니다.
프로그램이 실행 중일 때 설정하는 동안 설정할 수있는 플래그, 명령 또는 EXE 특정 레지스트리 키가 있으므로 경고를 비활성화 할 수 있습니까?더 나은 "예"또는 "아니오"응답을 선택할 수 있습니까?
웹 사이트를 제어하지 않으므로 "웹 페이지 수정"옵션이 아닙니다.우리의 프로그램은 고객 PC에서 실행되므로 "IE 설정으로 이동하는"또한 좋은 해결책이 아닙니다.
해결책
사용자 지정 보안 관리자 구현 < / a> urlaction_html_mixed_content 성공 코드가 있습니다. 컨트롤 사이트는 MFC의 ActiveX 클라이언트 사이트 인 CHTMLView에서 사용되는 WebBrowser 컨트롤이 호스트 기능 에서 사용되는 WebBrowser 컨트롤.
MFC 7.0 이상을 사용하는 경우 컨트롤 사이트 재정의 createControlsite 함수를 통해 . MFC 6.0에서는 AfxEnableControlContainer 호출 오버라이드를 오버라이드하는 자신의 CoccManager와 함께 전역으로 제어 컨테이너를 전역으로 바꿀 수 있습니다. 생성 방법을 생성합니다.
제어 사이트를 교체 한 후 IserviceProvider 및 Security Manager 인터페이스 (iInternetSecurityManager, IinterNetSecurityManagerex 및 IinterNetSecurityManagerex2)를 추가하여 Control Site 클래스의 Begin_Interface_Part / END_Interface_Part 매크로를 사용합니다. MFC 매크로에 익숙하지 않은 경우 TN038 : MFC / OLE IUNKNOWN 구현 메소드가 ProcessUrlActionAction / ProcessUrlActionAx / ProcessUrlactionEx2이고 코드가 URLAction_html_mixed_content 인 경우가 아니라면 구현이 inet_e_default_action을 반환해야합니다. 그런 다음 S_OK를 반환해야합니다. urlicy의 주소를 urlpolicy_allow로 채우고 혼합 된 콘텐츠 또는 URLPolicy_Disallow가 허용하지 않도록하십시오. URLPOLICY_Query를 사용하여 필요할 때 사용자에게 물어보십시오.