我在 .NET 4 中有一个使用 MEF 进行可扩展性的应用程序。我的主应用程序有三个程序集Host
:Application
和Contracts
。
Host
是创建容器并进行组合的“引导”可执行文件。
Application
包含我的应用程序的逻辑,以及第 3 方的更多扩展点。
Contracts
包含在扩展点中使用的接口(和一些帮助类)。
因此,开发第 3 方应用程序的人必须包含对 的引用Contracts
,而不是对Application
.
我在想我的安全模型应该是这样的:
Host
并且Application
应该是SecurityCriticalContracts
应该是SecuritySafeCritical- 所有第 3 方扩展都应该是SecurityTransparent
我认为 1. 默认情况下会满足。我知道我可以使用程序集属性来实现 2.。问题是,我如何执行规则 3.?操作系统是否通过将所有下载的扩展标记为不受信任来自动执行此操作?下载的扩展程序集是否有可能变得完全受信任?