这是mfc和chtmlview,但它可能适用于所有IE网络控制使用。

当Web控件正在导航到某些站点上的页面时,我们正在获取HTTP / HTTPS混合内容警告弹出窗口。

是否有任何标志,命令或EXE特定的注册表项,可以在我们的程序运行时设置,这将禁用警告?更好,我们可以选择“是”或“否”响应?

我们不控制网站,因此“修复网页”不是一个选项。我们的程序在客户PC上运行,因此“进入IE设置”也不是一个好的解决方案。

有帮助吗?

解决方案

实现自定义安全管理器< / a>在chtmlview派生类中使用的控制站点类来处理 URLAction_html_mixed_content 具有成功代码。控制站点是MFC的ActiveX客户端站点的实现,在CHTMLVIEW查询主机功能中使用的WebBrowser控件从中使用的WebBrowser控件

如果您使用MFC 7.0或更高版本,则需要替换控制站点通过覆盖CreateControlsite函数。在MFC 6.0中,您只能通过调用afxenablecontrolcontainer 与您自己的CoCcManager一起覆盖的控制容器CreateSite方法。

在更换控件站点后,通过控制站点类上的Bregin_Interface_Part / End_Interface_Part宏将IserviceProvider和Security Mannet,可选的iInternetseCurityManagerex2)添加IserviceProvider(,iInternetseCurityManager,可选的IInternetSecurityManagerex2)。如果您不熟悉MFC宏,请检查 tn038:MFC / OLE Iunknown实现。您的实现应该返回inet_e_default_action,除非该方法是processUroctionAction / processUroctionActionEx / processullactionexex / processurelactionex2并且代码为urlaction_html_mixed_content,那么您需要返回s_ok。用urlpolicy_allow填充ppolicy的地址,默默地允许混合内容,或urlpolicy_disallow以禁止。使用urlpolicy_query在需要时询问用户。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top