我正在尝试将 .hta 应用程序迁移到C#可执行文件。当然,因为它是 .hta ,所以代码都是 HTML 和 Jscript ,并调用本地 ActiveX 对象
我创建了一个 C#可执行项目,我只是使用 WebBrowser 控件来显示 HTML 内容。只需将 .hta 重命名为 .html ,然后取出HTA声明。
一切都很好,除了当我调用 ActiveX 对象时,我收到一个安全弹出警告,指出在页面上运行 ActiveX 控件。
我理解为什么会发生这种情况,因为WebBrowser控件本质上是IE并使用Internet选项安全设置,但有没有办法让WebBrowser控件绕过安全弹出窗口,或者将可执行文件或DLL注册为信任,而无需更改Internet选项中的设置?即使是在部署包上执行的方法也可以。
答案 0 :(得分:7)
WebBrowser
是Internet Explorer的一个实例,并从IE继承安全设置。
一种方法是更改IE中定义的安全设置。
另一种方法是通过实施Custom Security Manager接口添加IInternetSecurityManager
。
WebBrowser控件或MSHTML主机可以创建一个安全管理器(通过实现IInternetSecurityManager接口)来处理对主机很重要的URL操作和策略。其他URL操作和策略将传递给默认安全管理器,以便它可以适当地处理它们。 IInternetSecurityMgrSite接口将用于处理组件中与Windows相关的信息,以便自定义安全管理器可以处理所需的任何用户界面。 -