目录
.NET Framework 3.5 中的宿主端 CAS
部分受信的服务
App Domain Host
实现 AppDomainHost
部分受信的宿主
结构化宿主端安全要求
实现结构化宿主要求
AppDomainHost 的其他方面
在 2008 年 4 月刊的这一专栏中,我讨论了缺少对代码访问安全性 (CAS) 足够支持的情形,以及向 Windows Communication Foundation (WCF) 添 加合适 CAS 支持的动机。然后展示了如何在客户端添加该支持,从而使部分受 信的客户端可以调用 WCF 服务,并且它们均不会损害安全性或 WCF 编程模型( 如需四月专栏,请参阅 msdn.microsoft.com/magazine/cc500644)。
本期我将接着向您介绍部分受信的服务和宿主,帮您形成完整的印象。与客 户端一样,我讲解的内容不仅包含解决方案的机制,还有它的形成方法和构思过 程。您还将了解到一些 WCF 和 Microsoft .NET Framework 的高级编程技 术。
.NET Framework 3.5 中的宿主端 CAS
在 .NET Framework 3.5 中,WCF 仅允许部分受信的代码通过 BasicHttpBinding、WSHttpBinding 和 WebHttpBinding 绑定托管服务,并且不 提供任何安全性或仅提供传输安全性。另外,对于 WSHttpBinding,消息安全性 、可靠的消息传递以及事务等都被禁用。所有启用部分受信的绑定都必须使用文 本编码。在部分受信模式下运行的服务无法使用其他功能(如诊断和性能计数器 )。
由绑定负责强制执行某些支持功能。每个非 HTTP 绑定都会主动要求服务宿 主的完全信任。适用 HTTP 绑定本身不需要完全信任;而是需要根据使用环境确 定所需的权限(如图 1 所示)。
图 1 适用 HTTP 绑定所需的宿主权限
方案 | 权限 |
Basic、Web 和 WS – 没有安全性或传输安全性 | 执行和基础结构安全权限;接受 URI 调用的 Web 权限。 |
前面提到的绑定,且在单独程序集中包含内部服务类型 | 不受限制的反射。 |
前面提到的绑定,且包含通过身份验证的调用 | 用于控制主体的安全权限。 |