![]() |
1
5
最安全的方法是将该插件加载到 separate AppDomain 您可以使用配置 security evidence for the requirements you have . 创建AppDomain时,可以准确指定代码在此沙盒中可以执行的操作类型。在那里运行的代码仅限于您设置的限制。但这一过程在您第一次这样做时可能会令人困惑,并且可能仍然让您容易受到攻击。 使用AppDomain隔离程序集是一个有趣的过程。您可能会认为您将插件加载到另一个AppDomain中,然后通过AppDomain中的代理来使用它们,但情况恰恰相反。他们需要在其AppDomain中使用您的代理。如果您不能理解并正确地执行此操作,您将最终在主AppDomain中加载插件代码并在其中执行,而不是在受限域中执行。如果你做得不正确的话,有很多你会被忽略(订阅事件有一些有趣的副作用)。 我建议进行原型设计,通过C_复习clr中的AppDomain一章,并尽可能多地阅读相关内容。
这是我为调查跨AppDomain事件而开发的一个测试应用程序。
|