我的应用程序有一个插件模型,允许第三方开发人员编写将在主应用程序中执行的程序集。到目前为止,实际使用只允许受信任的开发人员提供加载项。
我想将框架暴露给不受信任的开发人员。为此,我想将程序集限制为不接触任何本地资源(硬件,注册表,数据库等)的内存操作,并且只允许使用最大内存量。 / p>
目前,对于受信任的程序集,我只是使用Assembly.Load和反射来实例化对象。我需要的是如何限制从外部程序集加载的代码的权限的一个很好的入门。
答案 0 :(得分:2)
http://msdn.microsoft.com/en-us/library/ms972968.aspx - 显示如何将插件加载到单独的AppDomain中。
http://msdn.microsoft.com/en-us/library/ms130766.aspx - 这个用于创建AppDomain的重载将允许您指定插件在不受信任时具有哪些权限。
答案 1 :(得分:1)
基本上,您需要将程序集加载到单独的AppDomain中。它解释了如何做到这一点,以及如何限制其他程序集加载到MSDN文档中的新AppDomain中。您还需要阅读CAS。这允许您为加载的assemply提供API,同时限制它可以在不同的信任级别调用哪些方法。