Vb.net 在.NET WebBrowser控件中处理安全消息

Vb.net 在.NET WebBrowser控件中处理安全消息,vb.net,webbrowser-control,managed,Vb.net,Webbrowser Control,Managed,我正在尝试编写一个VB.net应用程序,允许用户在html/jscript中创建自己的小部件插件,我想在应用程序设置中设置自己的安全选项,允许用户选择可以运行或不运行的内容,例如脚本、flash、activex 我想允许activex控件在WebBrowser控件(activex控件正在尝试与页面交互…)或它所说的任何内容中没有windows安全对话框的情况下使用 我开始定制WB控件,以满足我的需求,实现各种接口,如IOleClientSite、IDocHostShowUI、IDocHostUI

我正在尝试编写一个VB.net应用程序,允许用户在html/jscript中创建自己的小部件插件,我想在应用程序设置中设置自己的安全选项,允许用户选择可以运行或不运行的内容,例如脚本、flash、activex

我想允许activex控件在WebBrowser控件(activex控件正在尝试与页面交互…)或它所说的任何内容中没有windows安全对话框的情况下使用

我开始定制WB控件,以满足我的需求,实现各种接口,如IOleClientSite、IDocHostShowUI、IDocHostUIHandler等


我似乎找不到任何允许我控制WB控件的安全权限的东西。我试图实现IHttpSecurity和IInternetSecurityManager,但我不是选错了树,就是做得不对。

WebBrowser控件只是Internet Explorer的另一个实例,因此继承了IE中的安全设置

我发现除了在IE中编辑安全选项之外,没有其他方法可以更改安全选项。您很可能也可以更改注册表中的设置,但它们对于所有IE实例都是全局的。如果在代码中对其进行更改,则也会对所有浏览器实例进行更改


在我不久前编写的一个自动化应用程序中,我通过监视窗口弹出窗口、抓取窗口句柄并单击该窗口中的按钮来处理弹出窗口。当然不是一个优雅的解决方案:(

IHttpSecurity和IInternetSecurityManager应该工作,您的实现是什么样子的?请查看示例。

IInternetSecurityManager需要IQueryInterface。 我的应用程序中没有实现IQueryInterface,这就是为什么它不工作的原因。

使用以下代码:

Public WithEvents Security as WebBrowserSecurityAlerts
Public Sub Security_Show(sender as object, e as WebBrowserSecurityAlertsEventArgs) Handles Security.Show
MSGBOX (e.Info.Encryption & vbnewline & e.Info.Identity)
End Sub

WebBrowser中的句柄

brocken链接:-(