gpt4 book ai didi

.net - 如何使用 Sandbox 在 .NET 中创建插件模型?

转载 作者:行者123 更新时间:2023-12-01 12:01:14 25 4
gpt4 key购买 nike

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

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

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

我在 SO 上发现了以下关于如何在沙箱中加载程序集的问题,但它没有谈论添加沙箱的任何自定义限制:

Loading Assemblies from a .Net Application in a 'Sandbox Environment'

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

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

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

最佳答案

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

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

关于.net - 如何使用 Sandbox 在 .NET 中创建插件模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1197426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com