禁用注入的依赖项中的磁盘I / O.

时间:2012-02-16 16:39:32

标签: wpf dependency-injection io prism mef

我有一个项目加载第三方模块(以DLL的形式)并允许它们执行任意代码。加载模块的应用程序需要提升权限,模块也是如此。

这个模块都是内部制作的,因此目前风险相对较低。但是,将来可能需要加载外部模块。

模块不需要修改,访问或对任何驱动器执行任何操作,因此我希望能够禁用模块中的任何形式的I / O.我还没有找到任何办法,甚至从哪里开始。

依赖注入来自MEF,特别是使用Prism设计模式。

1 个答案:

答案 0 :(得分:2)

你应该看看这些问题:

How can I use CAS in .NET 4 to lock down my MEF extensions?

Looking for a practical approach to sandboxing .NET plugins

以及链接的http://msdn.microsoft.com/en-us/library/bb763046.aspx

简短的说法是,如果您的应用程序以完全信任的方式运行,那么代码访问安全属性将不会阻止插件执行他们喜欢的任何操作。您需要在安全限制(沙盒)AppDomain中加载插件,并通过app -main内部远程访问来访问它们。要执行此操作,请参阅此处的“沙盒”:http://msdn.microsoft.com/en-us/magazine/ee677170.aspx