Welcome

首页 / 软件开发 / .NET编程技术 / 向WCF新增代码访问安全性,第2部分

向WCF新增代码访问安全性,第2部分2010-12-24 MSDN Juval Lowy目录

.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 权限。
前面提到的绑定,且在单独程序集中包含内部服务类型不受限制的反射。
前面提到的绑定,且包含通过身份验证的调用用于控制主体的安全权限。