有没有办法将 .NET 程序集加载到同样受自定义方式限制的沙盒环境中?我知道您可以在不同的 AppDomain 中运行程序集,但是您可以限制它执行您想要限制的某些事情吗?
例如:我希望能够在 ASP.NET 应用程序的单独程序集中加载插件(简单,只需通过特定接口定义),但我只希望插件能够访问某些数据访问层组件并且无法直接连接到任何数据库。我正在考虑让单个应用程序实例托管多个客户端数据的场景,并且我只希望插件能够访问当前登录的特定客户端/用户的数据。
有人对如何做到这一点有任何想法吗?
我在这里找到了关于如何在沙箱中加载程序集的以下问题,但它没有谈到添加沙箱的任何自定义限制:
更新:看起来您可以在调用“ AppDomain.CreateDomain ”时设置一个非常具体的“ PermissionSet ” ,但我不确定我需要设置哪些权限来允许/禁止上面指定的权限。MSDN 上也有这篇文章:http: //msdn.microsoft.com/en-us/library/bb763046.aspx
另外,我希望在 .NET 2.0/3.5 中执行此操作
除了使用 System.AddIn 之外,还有什么其他想法吗?