gpt4 book ai didi

.net-4.0 - 如何在 .NET 4 中使用 CAS 来锁定我的 MEF 扩展?

转载 作者:行者123 更新时间:2023-12-02 00:39:05 25 4
gpt4 key购买 nike

我在 .NET 4 中有一个应用程序,它使用 MEF 来实现可扩展性。我的主要应用程序包含三个程序集:HostApplicationContracts

Host 是创建容器并进行组合的“引导”可执行文件。

Application 包含我的应用程序的逻辑,以及更多第三方的扩展点。

Contracts 包含在扩展点中使用的接口(interface)(和一些辅助类)。

因此,开发第 3 方应用程序的人必须包含对 Contracts 的引用,而不是对 Application 的引用。

我认为我的安全模型应该如下所示:

  1. HostApplication 应该是 SecurityCritical
  2. Contracts 应该是 SecuritySafeCritical
  3. 所有第 3 方扩展都应该是SecurityTransparent

我认为1.会默认满足。我知道我可以使用 assembly 属性实现 2.。问题是,我如何执行规则 3。操作系统是否通过将所有下载的扩展标记为不受信任来自动执行此操作?下载的扩展程序集是否有可能变得完全可信?

最佳答案

如果您的应用程序以完全信任的方式运行,那么默认情况下您的扩展将以完全信任的方式运行并且能够做任何他们想做的事情。它们的安全属性是什么并不重要。要限制扩展程序可以做什么,您需要创建一个沙盒应用程序域。您可以将您的 HostApplication 设置为在该 AppDomain 中完全受信任,所有其他代码将只拥有您授予它的权限。

这是一篇关于此主题的 MSDN 文章:How to: Run Partially Trusted Code in a Sandbox

关于.net-4.0 - 如何在 .NET 4 中使用 CAS 来锁定我的 MEF 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3402109/

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