一千萬個為什麽

搜索

WebBrowser控件的安全級別

我正在嘗試將 .hta 應用程序遷移到C#可執行文件。當然,因為它是 .hta ,所以代碼都是 HTMLJscript ,並調用本地 ActiveX 對象。

我創建了一個 C#可執行項目,我只是使用 WebBrowser 控件來顯示 HTML 內容。只需將 .hta 重命名為 .html ,然後取出HTA聲明。

一切都很好,除了當我調用 ActiveX 對象時,我收到一個安全彈出警告,指出在頁面上運行 ActiveX 控件。

我理解為什麽會發生這種情況,因為WebBrowser控件本質上是IE並使用Internet選項安全設置,但有沒有辦法讓WebBrowser控件繞過安全彈出窗口,或者將可執行文件或DLL註冊為可信任的方法更改Internet選項中的設置?即使是在部署包上執行的方法也可以。

最佳答案

WebBrowser is an instance of Internet Explorer, and inherits security settings from IE.

一種方法是更改​​IE中定義的安全設置。

另一種方法是添加自定義安全管理器通過實施 IInternetSecurityManager 界面。

WebBrowser控件或MSHTML主機可以創建一個安全管理器(通過實現IInternetSecurityManager接口)來處理對主機很重要的URL操作和策略。其他URL操作和策略將傳遞給默認安全管理器,以便它可以適當地處理它們。 IInternetSecurityMgrSite接口將用於處理組件中與Windows相關的信息,以便自定義安全管理器可以處理所需的任何用戶界面。 -

轉載註明原文: WebBrowser控件的安全級別