2012-05-29 90 views
3

自從將我們的產品轉換爲.NET 4.0並使用更新的代碼訪問安全模型後,我們遇到了問題。基本上我們有組件庫,可以或不可以安裝到機器上的GAC。.NET 4.0與GAC的XBAP安全問題

如果有人制作了XBAP,並使用這些庫的默認部分信任設置,並且最終用戶安裝了XBAP(在安裝期間部署庫),但如果我們的庫尚未在GAC中,則工作正常。

如果他們在GAC中,XBAP將在運行時失敗並出現安全性異常。我相信這個問題是由於這樣的: http://msdn.microsoft.com/en-us/library/aa970906.aspx

當管理組件安裝到全局程序集緩存(GAC),他們成爲完全可信的,因爲用戶必須提供安裝它們的明確許可。由於它們是完全可信的,因此只有完全可信的託管客戶端應用程序才能使用它

看起來,自從他們從GAC中撤出後,即使他們與XBAP部署了完全相同的.dll,他們的安全性也會提高。但是在那種情況下,一切都打破了。

有沒有什麼辦法可以解決這個問題,只需將AllowPartiallyTrustedCallersAttribute添加到所有庫中?

或者有沒有辦法阻止XBAP在GAC中查找程序集並僅使用它部署的引用的確切副本?

在此先感謝您的幫助。

回答

0

在Visual Studio的解決方案資源管理器中,單擊參考並嘗試將屬性「SpecificVersion」設置爲true。它只應查看指定的路徑和引用時指定的版本,而不要在GAC中尋找最新的版本。

.net reference specificversion true or false?

請注意,如果您添加引用的新版本,你就必須刪除當前的參考,它不會自動替換它。