【问题标题】:Loading untrusted assemblies加载不受信任的程序集
【发布时间】:2010-09-30 14:36:38
【问题描述】:

我的应用程序有一个插件模型,允许第三方开发人员编写将在主应用程序中执行的程序集。到目前为止,实际用途一直是只允许受信任的开发人员提供插件。

我想向不受信任的开发人员公开该框架。为此,我想将程序集限制为不涉及任何本地资源(硬件、注册表、数据库等)的内存操作,并且只允许使用最大内存量。

目前,对于受信任的程序集,我只是使用 Assembly.Load 和反射来实例化对象。我需要的是关于如何限制从外部程序集加载的代码的权限的良好入门。

【问题讨论】:

标签: .net security


【解决方案1】:

http://msdn.microsoft.com/en-us/library/ms972968.aspx - 展示如何将插件加载到单独的 AppDomain。

http://msdn.microsoft.com/en-us/library/ms130766.aspx - 这个用于创建 AppDomain 的重载将允许您指定插件在不受信任时具有哪些权限。

【讨论】:

    【解决方案2】:

    基本上,您需要将程序集加载到单独的 AppDomain 中。它几乎解释了如何执行此操作以及如何限制将其他程序集加载到 MSDN 文档中的新 AppDomain 中。您还需要阅读 CAS。这允许您为加载的程序集提供 API,同时限制它可以在不同信任级别调用的方法。

    【讨论】:

      猜你喜欢
      • 2014-09-10
      • 2018-03-05
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 1970-01-01
      相关资源
      最近更新 更多