共用方式為


HOW TO:設定簽章確認

簽章確認」(Signature confirmation) 是訊息啟動器的機制,可確認收到的回覆已產生用來回應寄件者的原始訊息。簽章確認是定義在 WS-Security 1.1 規格中。如果端點支援 WS-Security 1.0,您就無法使用簽章確認。

下列程序會指定如何使用 AsymmetricSecurityBindingElement 啟用簽章確認。您可以搭配 SymmetricSecurityBindingElement 使用相同的程序。這個程序是以 HOW TO:使用 SecurityBindingElement 建立自訂繫結中的基本步驟為基礎。

若要在程式碼中啟用簽章確認

  1. 建立 BindingElementCollection 類別的執行個體。

  2. 建立 SymmetricSecurityBindingElement 類別的執行個體。

  3. RequireSignatureConfirmation 設定為 true

  4. 將安全性項目新增至繫結集合中。

  5. HOW TO:使用 SecurityBindingElement 建立自訂繫結中所指定的方式建立自訂繫結。

若要在組態中啟用簽章確認

  1. <customBinding> 項目新增至組態檔的 <bindings> 區段中。

  2. 新增 <binding> 項目,並將名稱屬性設為適當值。

  3. 新增適當的編碼項目。下列範例會新增 <TextMessageEncoding> 項目。

  4. 新增 <security> 子項目並將 requireSignatureConfirmation 屬性設定為 true

  5. 選擇項,若要在啟動安裝期間啟用簽章確認,請新增 secureConversationBootstrap element 子項目並將 equireSignatureConfirmation 屬性設定為 true

  6. 新增適當的傳輸項目。下列範例會新增 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

概念

HOW TO:使用 SecurityBindingElement 建立自訂繫結