3

有没有办法将 .NET 程序集加载到同样受自定义方式限制的沙盒环境中?我知道您可以在不同的 AppDomain 中运行程序集,但是您可以限制它执行您想要限制的某些事情吗?

例如:我希望能够在 ASP.NET 应用程序的单独程序集中加载插件(简单,只需通过特定接口定义),但我只希望插件能够访问某些数据访问层组件并且无法直接连接到任何数据库。我正在考虑让单个应用程序实例托管多个客户端数据的场景,并且我只希望插件能够访问当前登录的特定客户端/用户的数据。

有人对如何做到这一点有任何想法吗?

我在这里找到了关于如何在沙箱中加载程序集的以下问题,但它没有谈到添加沙箱的任何自定义限制:

在“沙盒环境”中从 .Net 应用程序加载程序集

更新:看起来您可以在调用“ AppDomain.CreateDomain ”时设置一个非常具体的“ PermissionSet ” ,但我不确定我需要设置哪些权限来允许/禁止上面指定的权限。MSDN 上也有这篇文章:http: //msdn.microsoft.com/en-us/library/bb763046.aspx

另外,我希望在 .NET 2.0/3.5 中执行此操作

除了使用 System.AddIn 之外,还有什么其他想法吗?

4

1 回答 1

5

您可以使用System.AddIn框架(在我看来,这对于更简单的任务来说有点复杂)或创建自定义 AppDomain,您需要什么权限(最低设置),您可以在这里阅读

AddIn 框架是在 3.5 中添加的。此外,您可以搜索生成存根的可视化插件,这使得使用此解决方案更加容易。

于 2009-07-29T00:24:53.010 回答