HOW TO:設定簽章確認
「簽章確認」(Signature confirmation) 是訊息啟動器的機制,可確認收到的回覆已產生用來回應寄件者的原始訊息。簽章確認是定義在 WS-Security 1.1 規格中。如果端點支援 WS-Security 1.0,您就無法使用簽章確認。
下列程序會指定如何使用 AsymmetricSecurityBindingElement 啟用簽章確認。您可以搭配 SymmetricSecurityBindingElement 使用相同的程序。這個程序是以 HOW TO:使用 SecurityBindingElement 建立自訂繫結中的基本步驟為基礎。
若要在程式碼中啟用簽章確認
建立 BindingElementCollection 類別的執行個體。
建立 SymmetricSecurityBindingElement 類別的執行個體。
將 RequireSignatureConfirmation 設定為 true。
將安全性項目新增至繫結集合中。
依 HOW TO:使用 SecurityBindingElement 建立自訂繫結中所指定的方式建立自訂繫結。
若要在組態中啟用簽章確認
將 <customBinding> 項目新增至組態檔的 <bindings> 區段中。
新增 <binding> 項目,並將名稱屬性設為適當值。
新增適當的編碼項目。下列範例會新增 <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 通訊協定) 權杖時示範簽章確認。在這種情況下,來自服務的所有回應中都會傳回用戶端的簽章,並且經由用戶端確認。
Private Function CreateBinding() As Binding
Dim bindings As New BindingElementCollection()
Dim tokens As New KerberosSecurityTokenParameters()
Dim security As New SymmetricSecurityBindingElement(tokens)
' Require that every request and return be correlated.
security.RequireSignatureConfirmation = True
bindings.Add(security)
Dim encoding As New TextMessageEncodingBindingElement()
bindings.Add(encoding)
Dim transport As New HttpTransportBindingElement()
bindings.Add(transport)
Dim myBinding As New CustomBinding(bindings)
Return myBinding
End Function
private Binding CreateBinding()
{
BindingElementCollection bindings = new BindingElementCollection();
KerberosSecurityTokenParameters tokens = new KerberosSecurityTokenParameters();
SymmetricSecurityBindingElement security =
new SymmetricSecurityBindingElement(tokens);
// Require that every request and return be correlated.
security.RequireSignatureConfirmation = true;
bindings.Add(security);
TextMessageEncodingBindingElement encoding = new TextMessageEncodingBindingElement();
bindings.Add(encoding );
HttpTransportBindingElement transport = new HttpTransportBindingElement();
bindings.Add(transport);
CustomBinding myBinding = new CustomBinding(bindings);
return myBinding;
}
另請參閱
工作
HOW TO:為指定的驗證模式建立 SecurityBindingElement
參考
SymmetricSecurityBindingElement
AsymmetricSecurityBindingElement
CreateMutualCertificateBindingElement