本主题介绍 Windows Communication Foundation (WCF) WSDL 1.1、WS-Policy 和 WS-PolicyAttachment 实现详细信息,以及 WCF 引入的其他 WS-Policy 断言和 WSDL 1.1 扩展。
WCF 使用本文档中所述的约束和说明实现提交给 W3C 的 WS-Policy 和 WS-PolicyAttachment 规范。
本文档使用下表中显示的前缀和命名空间。
| 前缀 | Namespace |
|---|---|
| wsp (WS-Policy 1.2) | http://schemas.xmlsoap.org/ws/2004/09/policy |
| wsp (WS-Policy 1.5) | http://www.w3.org/ns/ws-policy |
| http | http://schemas.microsoft.com/ws/06/2004/policy/http |
| msmq | http://schemas.microsoft.com/ws/06/2004/mspolicy/msmq |
| msf | http://schemas.microsoft.com/ws/2006/05/framing/policy |
| mssp | http://schemas.microsoft.com/ws/2005/07/securitypolicy |
| msc | http://schemas.microsoft.com/ws/2005/12/wsdl/contract |
| cdp | http://schemas.microsoft.com/net/2006/06/duplex |
WCF WSDL1.1 扩展
WCF 使用以下 WSDL1.1 扩展来描述协定会话要求。
wsdl:portType/wsdl:operation/@msc:isInitiating
xs:boolean,指示此作启动 WCF 会话;默认值为 false.
wsdl:portType/wsdl:operation/@msc:isTerminating
xs:boolean,指示此作终止 WCF 会话;默认值为 false.
wsdl:portType/wsdl:operation/@msc:usingSession
xs:boolean,表示此合同需要建立会话。
SOAP 1.x HTTP 绑定传输 URI
WCF 使用以下 URI 来指示要用于 WSDL 1.1、SOAP 1.1 和 SOAP 1.2 绑定扩展元素的传输。
| 运输 | URI |
|---|---|
| HTTP | http://schemas.xmlsoap.org/soap/http |
| TCP | http://schemas.microsoft.com/soap/tcp |
| MSMQ | http://schemas.microsoft.com/soap/msmq |
| 命名管道 | http://schemas.microsoft.com/soap/named-pipe |
WCF 实施的策略声明
除了 Web 服务规范(WS-*)中引入的策略断言以及本文档的其他部分中提到的策略断言外,WCF 还实现了以下策略断言。
| 策略断言 | 策略主题 | DESCRIPTION |
|---|---|---|
| http:HttpBasicAuthentication | 端点 | 终结点使用 HTTP 基本身份验证。 |
| http:HttpDigestAuthentication | 端点 | 终结点使用 HTTP 摘要式身份验证。 |
| http:HttpNegotiateAuthentication | 端点 | 终结点使用 HTTP 协商身份验证。 |
| http:HttpNtlmAuthentication | 端点 | 终结点使用 HTTP NTLM 身份验证。 |
| msf:Streamed | 端点 | 终结点使用经过流式处理的消息组帧。 此断言与为诸如 TCP 之类的传输以及命名管道提供的消息组帧协议一起使用。 |
| msf:SslTransportSecurity | 端点 | 终结点将传输层安全 (TLS) 与消息组帧技术一起使用。 |
| msf:WindowsTransportSecurity | 端点 | 终结点将安全提供程序协商 (SPNEGO) 与消息组帧一起使用。 |
| msmq:MsmqBestEffort | 端点 | 具有最大努力保证的 MSMQ。 |
| msmq:MsmqSession | 端点 | 具有会话保证的 MSMQ。 |
| msmq:MsmqVolatile | 端点 | MSMQ 易失性。 |
| msmq:身份验证 | 端点 | 身份验证用于 MSMQ 传输。 |
| msmq:WindowsDomain | 端点 | MSMQ 使用 Windows 域身份验证。 |
| cdp:CompositeDuplex | 端点 | 终结点对传入和传出消息使用两个单独的相反传输连接。 |
| mssp:RsaToken | 嵌套 | RSA 密钥令牌断言。 此要求通常通过将 RSA 密钥直接序列化为确认签名中的密钥信息的一部分来满足。 |
| mssp:SslContextToken | 嵌套 | 要求使用通过利用 WS-Trust 的 TLS 握手获取的 SecurityContextToken。 嵌套断言包括:sp:RequireDerivedKeys、mssp:MustNotSendCancel、mssp:RequireClientCertificate。 |
| mssp:MustNotSendCancel | 嵌套 | 指定一个需求,即不要将使用 Cancel 绑定 [WS-Trust、WS-SC] 的请求安全令牌 (RST) 请求消息 [WS-Trust] 发送给给定 SecurityContextToken 的颁发机构。 如果存在此断言,则此类请求消息不得发送到颁发者。 如果此断言不存在,则可以将此类请求消息发送到颁发者。 |
| mssp:RequireClientCertificate | 嵌套 | 此可选元素指定在 TLSNEGO 协议中提供客户端证书的要求。 如果存在此断言,则必须提供客户端证书。 如果此断言不存在,则不得提供客户端证书。 此断言不得在 mssp:SslContextToken 之外使用。 |