如何:设置签名确认
签名确认**是消息发起方使用的一种机制,用于确保接收到的答复是为响应发送方的原始消息而生成的。WS-Security 1.1 规范中对签名确认进行了定义。如果终结点支持 WS-Security 1.0,则不能使用签名确认。
下面的过程指定如何使用 AsymmetricSecurityBindingElement 来启用签名确认。可以对 SymmetricSecurityBindingElement 使用相同的过程。该过程是以如何:使用 SecurityBindingElement 创建自定义绑定中的基本步骤为基础而建立的。
在代码中启用签名确认
创建 BindingElementCollection 类的实例。
创建 SymmetricSecurityBindingElement 类的实例。
将 RequireSignatureConfirmation 设置为 true。
将安全元素添加到绑定集合中。
按照如何:使用 SecurityBindingElement 创建自定义绑定中的说明创建自定义绑定。
在配置中启用签名确认
将 <customBinding> 元素添加到配置文件的 <bindings> 节。
添加一个 <binding> 元素,并将 name 属性设置为适当的值。
添加一个适当的编码元素。下面的示例添加了一个 <TextMessageEncoding> 元素。
添加一个 <security> 子元素并将 requireSignatureConfirmation 属性设置为 true。
可选。若要在启动过程中启用签名确认,请添加一个 secureConversationBootstrap element 子元素并将 equireSignatureConfirmation 属性设置为 true。
添加一个适当的传输元素。下面的示例添加一个 httpTransport element:
<bindings> <customBinding> <binding name="SignatureConfirmationBinding"> <security requireSignatureConfirmation="true"> <secureConversationBootstrap requireSignatureConfirmation="true" /> </security> <textMessageEncoding /> <httpTransport /> </binding> </customBinding> </bindings>
示例
下面的代码创建 SymmetricSecurityBindingElement 的实例并将 RequireSignatureConfirmation 属性设置为 true。请注意,此示例不使用上一示例中所示的 <secureConversationBootstrap> 元素。此示例演示了使用 Windows(Kerberos 协议)令牌时的签名确认。在本例中,在来自服务的所有响应中均返回客户端的签名,并且该签名由客户端进行确认。
另请参见
任务
如何:为指定的身份验证模式创建 SecurityBindingElement
参考
SymmetricSecurityBindingElement
AsymmetricSecurityBindingElement
CreateMutualCertificateBindingElement