【问题标题】:MFC CHtmlView - suppress mixed content warnings?MFC CHtmlView - 抑制混合内容警告?
【发布时间】:2014-01-10 20:36:48
【问题描述】:

这是 MFC 和 CHtmlView,但它可能适用于所有 IE Web 控件使用。

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

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

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

【问题讨论】:

    标签: mfc mshtml security-zone


    【解决方案1】:

    Implement a Custom Security Manager 在 CHTMLView 派生类用来处理带有成功代码的 URLACTION_HTML_MIXED_CONTENT 的控制站点类上。控制站点是MFC 的ActiveX 客户端站点from which the webbrowser control used in CHTMLView queries host capabilities 的实现。

    如果您使用MFC 7.0或更高版本,则需要更换控制站点via an overriden CreateControlSite function。在 MFC 6.0 中,您只能将控件容器全局替换为 calling AfxEnableControlContainer,并使用您自己的 COccManager 覆盖 CreateSite 方法。

    替换控制站点后,通过控制站点类上的 BEGIN_INTERFACE_PART/END_INTERFACE_PART 宏添加 IServiceProvider 和安全管理器接口(IInternetSecurityManager,可选 IInternetSecurityManagerEx 和 IInternetSecurityManagerEx2)。如果您不熟悉 MFC 宏,请查看TN038: MFC/OLE IUnknown Implementation。你的实现应该返回 INET_E_DEFAULT_ACTION,除非方法是 ProcessUrlActionaction/ProcessUrlActionactionEx/ProcessUrlActionEx2 并且代码是 URLACTION_HTML_MIXED_CONTENT,那么你需要返回 S_OK。使用 URLPOLICY_ALLOW 填充 pPolicy 的地址以静默允许混合内容,或使用 URLPOLICY_DISALLOW 禁止。使用 URLPOLICY_QUERY 在需要时询问用户。

    【讨论】:

      猜你喜欢
      • 2016-06-22
      • 2017-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-19
      • 2013-04-03
      • 1970-01-01
      • 2018-11-08
      相关资源
      最近更新 更多