2009-12-29 82 views
1

我們的web應用程序有一個在IE中運行的activex dll。它被賦予了一個強大的名字和基於該強名稱的自定義權限集。activex需要的受信任站點

裝配飾是這樣的:

[assembly: AllowPartiallyTrustedCallers] 

和類的ActiveX控件需要這樣在瀏覽器中運行:

[PrintingPermission(SecurityAction.Assert, Unrestricted = true)] 

當我Trusted_Zone下添加我們的自定義代碼組並將該網站添加到受信任的網站,一切工作正常。但是,當我在Internet_Zone下添加代碼組並將activex控件從受信任的站點中刪除時,activex控件將無法運行。

在IE8中,安全區域都設置爲默認設置。另外,當我將Internet區域中的「ActiveX控件和插件」的安全設置更改爲與「受信任的站點區域」中相同時,該控件不起作用。還有什麼我需要做的,無論是通過caspol或IE設置,讓它在互聯網區域運行?

回答

2

有你添加的安全執行腳本和安全有關COM註冊(或實現IObjectSafety的)初始化類。如果你不那麼IE就不會相信你的控制權,並拒絕創建它。有關將正確的鍵放入註冊表的信息,請參閱this之類的內容。

或者你是否直接在IE中使用它?在沒有註冊它,但在classid屬性中傳遞dll路徑?如果是這樣的話,生活會更加困難。 IE8不再加載Internet區域中的dotnet控件,並且沒有用戶界面來啓用它(我記得,儘管在安全編輯器中看過)。您可以通過將Internet區域的URLACTION_DOTNET_USERCONTROLS的URL Action設置爲啓用,在註冊表中更改它。

+0

我直接在IE中使用它。更改註冊表項確實會更改Internet區域中的行爲。 – voam 2009-12-30 15:25:00

+0

這意味着你沒有使用「ActiveX」控件,而是使用UserControl。由於安全原因,UserControl在Internet區域中被阻止:http://blogs.msdn.com/ieinternals/archive/2009/10/09/DotNet-UserControls-Do-Not-Load-in-IE8-Internet-Zone.aspx – EricLaw 2009-12-30 16:24:56

+0

@EricLaw謝謝你,我認爲這是正確的答案。 – ChrisW 2010-08-30 21:53:06

相關問題