F.P*_*F.P 7 .net c# plugins module
我目前正在为我的学士论文研究一个非常模块化和基于插件的框架.主要思想是,我的应用程序结构中有一个文件夹plugins,您可以在其中.dll放入符合特殊接口的已编译插件(例如-files)IPlugin.然后,应用程序使用用户选择的插件执行任务.所以,如果我想在PDF文件中执行一次任务,我会选择PdfPlugin一个单词文档中的一次,我会选择DocPlugin工作.
输出也在接口中定义,因此每个插件都返回相同的数据结构.只是每个库的实际工作不同.
现在,由于应用程序只调用接口中定义的方法,例如ParseDocument(),如何防止插件(可能是由第三方开发)执行有害代码?
我正在研究.NET3.5(可能会切换到4,尚未决定)和C#.
我正在研究.NET3.5
在这种情况下,我会将您的插件隔离在单独的AppDomain中运行,使用代码访问安全性并限制App Domain的权限集.这个"沙盒"你的插件组件.
例如,您可以删除所有非托管代码权限和文件IO权限,然后您的插件将永远无法写入文件系统.
这不适合胆小的人.AppDomains可能很难处理并需要序列化,对象生存期策略等.您可以使用MAF,因为它消耗了大量的管道.
| 归档时间: |
|
| 查看次数: |
453 次 |
| 最近记录: |