WCF框架是目前功能比较强大的一个由微软开发的开发工具,可以帮助开发人员实现许多功能。WCF传输安全取决于使用的绑定和后续传输。#t#
例如,当使用 WSHttpBinding 类时,传输为 HTTP,保证传输安全的主要机制为 HTTP 上的安全套接字层 (SSL)(通常称为 HTTPS)。本主题讨论 WCF 系统提供的绑定中使用的主要传输安全机制。
注意:
将 SSL 安全与 .NET Framework 3.5 和更高版本一起使用时,WCF 客户端将使用其证书存储区中的中间证书和 SSL 协商期间收到的中间证书,对服务的证书执行证书链验证。.NET Framework 3.0 仅使用本地证书存储区中安装的中间证书。
BasicHttpBinding
默认情况下,BasicHttpBinding 类不提供安全。此绑定旨在提供与不实现安全机制的 Web 服务提供程序的互操作性。但可以通过将 Mode 属性设置为 None 以外的值来启用安全。若要启用WCF传输安全,请将该属性设置为 Transport。
BasicHttpBinding 类主要用于与现有的 Web 服务和由 Internet 信息服务 (IIS) 承载的许多服务进行互操作。因此,此绑定的传输安全旨在实现与 IIS 站点的无缝互操作。通过将安全模式设置为 Transport,然后设置客户端凭据类型可以实现这一目的。凭据类型值对应于 IIS 目录安全机制。下面的代码演示如何设置模式以及如何将凭据类型设置为 Windows。当客户端和服务器在同一个 Windows 域中时,您可以使用此配置。
或在配置中:
- < bindings>
- < basicHttpBinding>
- < binding name="SecurityByTransport">
- < security mode="Transport">
- < transport clientCredentialType=
"Windows" /> < /security>- < /binding>
- < /basicHttpBinding>
- < /bindings>
下面的WCF传输安全代码使用***标识证书的证书指纹。有关 证书的更多信息,请参见使用证书。
或者,在客户端配置中的 behaviors 部分使用 clientCredentials element 指定证书。
- < behaviors>
- < behavior>
- < clientCredentials>
- < clientCertificate findValue=
"101010101010101010101010101010000000000"
storeLocation="LocalMachine"
storeName="My" X509FindType=
"FindByThumbPrint"/>- < /clientCertificate>
- < /clientCredentials>
- < /behavior>
- < /behaviors>
NetNamedPipeBinding
NetNamedPipeBinding 类用于进行有效的计算机内通信;也就是说,虽然可以在同一网络上的两台计算机之间创建命名管道通道,但进程是在同一台计算机上运行的。此绑定只提供传输级别的安全。在创建使用此绑定的应用程序时,终结点地址必须包括“net.pipe”作为终结点地址的协议。
WSFederationHttpBinding
使用传输安全时,此绑定与已颁发的令牌 (TransportWithMessageCredential) 一起使用 HTTP 上的 SSL(称为 HTTPS)。有关 联合身份验证应用程序的更多信息,请参见联合令牌与颁发的令牌。
NetPeerTcpBinding
NetPeerTcpBinding类是旨在使用对等网络功能进行有效通信的一种安全传输。TCP 是协议,这与类和绑定的名称相一致。当安全模式设置为“传输”时,绑定将实现 TCP 上的 TLS。有关 对等功能的更多信息,请参见对等网络。
MsmqIntegrationBinding 和 NetMsmqBinding
有关消息队列(以前称为 MSMQ)的传输安全的完整讨论,请参见使用WCF传输安全保护消息。