2009-12-12 93 views
4

我正在研究第三方開發人員可以編寫插件的應用程序。我一直在看管理擴展性框架,這似乎是正確的路要走。帶有託管擴展框架的沙盒插件

有一件事,我想阻止插件自由地訪問應用程序的其他部分(調用單例等),但想限制爲通過某個接口進行通信,理想情況下,每個插件必須「請求」不同的權限諸如訪問其他插件和用戶數據之類的東西,是否有一種很好的方法可以實現這一點?

我能想到的,否則唯一的事情是有傳遞給每個方法的安全繩和混淆地獄的代碼,但它似乎是一個醜陋的解決方案:P

回答

4

你需要的是一個新的AppDomain到成爲你的插件的沙盒,但我不認爲MEF支持此時將出口加載到單獨的AppDomain(如果不是這種情況,我肯定有人會糾正我)。

如果這是您的嚴重問題,請考慮使用System.Addin名稱空間中的位,並參閱Activation, Isolation, Security, and Sandboxing上的此部分以獲取更多信息。這是MEF的一個更強大和更安全的替代方案,但是遠沒有靈活性。

更新:肯特Boogaart有一個blog post您展示如何使用MEF和MAF在一起。

相關問題