处理.NET WebBrowser控件中的安全消息

时间:2010-02-19 23:25:20

标签: vb.net webbrowser-control managed

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

我想允许在没有WebBrowser控件中的Windows安全对话框的情况下使用activex控件(ActiveX控件正在尝试与页面进行交互...)或它所说的内容。

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

我似乎无法找到任何可以控制WB Control安全权限的内容。我试图实现IHttpSecurity和IInternetSecurityManager,但我要么咆哮错误的树或不正确。

4 个答案:

答案 0 :(得分:1)

使用此代码:

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

IHttpSecurity和IInternetSecurityManager应该可以工作,您的实现如何?请查看http://support.microsoft.com/kb/246227以获取示例。

答案 3 :(得分:0)

IInternetSecurityManager需要IQueryInterface。 我没有在我的应用程序中实现IQueryInterface,这就是它无法正常工作的原因。