共用方式為


<wsFederationHttpBinding>

定義支援 WS-Federation 的繫結。

<configuration>
  <system.serviceModel>
    <bindings>
      <wsFederationHttpBinding>

Syntax

<wsFederationHttpBinding>
  <binding bypassProxyOnLocal="Boolean"
           closeTimeout="TimeSpan"
           hostNameComparisonMode="StrongWildcard/Exact/WeakWildcard"
           maxBufferPoolSize="integer"
           maxReceivedMessageSize="integer"
           messageEncoding="Text/Mtom"
           name="string"
           openTimeout="TimeSpan"
           privacyNoticeAt="Uri"
           privacyNoticeVersion="Integer"
           proxyAddress="Uri"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan"
           textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/ Utf8TextEncoding"
           transactionFlow="Boolean"
           useDefaultWebProxy="Boolean">
    <security mode="None/Message/TransportWithMessageCredential">
      <message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
               issuedTokenType="string"
               issuedKeyType="SymmetricKey/PublicKey"
               negotiateServiceCredential="Boolean">
        <claimTypeRequirements>
          <add claimType="URI"
               isOptional="Boolean" />
        </claimTypeRequirements>
        <issuer address="Uri" >
          <headers>
            <add name="String"
                 namespace="String" />
          </headers>
          <identity>
            <certificate encodedValue="String" />
            <certificateReference findValue="String"
                                  isChainIncluded="Boolean"
                                  storeName="AddressBook/AuthRoot/CertificateAuthority/Disallowed/My/Root/TrustedPeople/TrustedPublisher"
                                  storeLocation="LocalMachine/CurrentUser"
                                  X509FindType="System.Security.Cryptography.X509certificates.X509findtype" />
            <dns value="String" />
            <rsa value="String" />
            <servicePrincipalName value="String" />
            <usePrincipalName value="String" />
          </identity>
        </issuer>
        <issuerMetadata address="String">
          <headers>
            <add name="String"
                 namespace="String" />
          </headers>
          <identity>
            <certificate encodedValue="String" />
            <certificateReference findValue="String"
                                  isChainIncluded="Boolean"
                                  storeName="AddressBook/AuthRoot/CertificateAuthority/Disallowed/My/Root/TrustedPeople/TrustedPublisher"
                                  storeLocation="LocalMachine/CurrentUser"
                                  x509FindType="System.Security.Cryptography.X509certificates.X509findtype" />
            <dns value="String" />
            <rsa value="String" />
            <servicePrincipalName value="String" />
            <usePrincipalName value="String" />
          </identity>
        </issuerMetadata>
        <tokenRequestParameters>
          <xmlElement>
          </xmlElement>
        </tokenRequestParameters>
      </message>
    </security>
    <reliableSession ordered="Boolean"
                     inactivityTimeout="TimeSpan"
                     enabled="Boolean" />
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</wsFederationHttpBinding>

屬性和項目

下列章節說明屬性、子元素和父元素。

屬性

屬性 描述
bypassProxyOnLocal 布林值,指出本機位址是否略過 Proxy 伺服器。 預設值為 false
closeTimeout TimeSpan 值,指定提供用來讓關閉作業完成的時間間隔。 這個值應該大於或等於 Zero。 預設為 00:01:00。
hostnameComparisonMode 指定用於剖析 URI 的 HTTP 主機名稱比較模式。 這個屬性的型別為 HostNameComparisonMode,表示比對 URI 時此主機名稱是否會用來取用服務。 預設值為 StrongWildcard,表示比對時忽略主機名稱。
maxBufferPoolSize 指定此繫結之緩衝區集區大小上限的整數。 預設為 524,288 個位元組 (512 * 1024)。 Windows Communication Foundation (WCF) 的許多部分會使用緩衝區。 每次使用這些組件時建立並終結緩衝區是高度耗費資源的作業,回收緩衝區的記憶體也是如此。 有了緩衝集區,您就可以從集區取出緩衝區來使用,用完後再還給集區, 因此可以避免建立及終結緩衝區的負荷。
maxReceivedMessageSize 正整數,指定在使用此繫結設定之通道上可以接收的訊息大小上限 (以位元組為單位,包括標頭)。 超出此限制之訊息的寄件者將會收到 SOAP 錯誤。 收件者會捨棄訊息,然後在追蹤記錄檔中建立此事件的項目。 預設值為 65536。
messageEncoding 定義用來對訊息進行編碼的編碼器。 有效值如下:

- Text:使用文字訊息編碼器。
- Mtom:使用 Message Transmission Organization Mechanism 1.0 (MTOM) 編碼器。

預設為 Text。

此屬性的型別為 WSMessageEncoding
NAME 包含繫結之組態名稱的字串。 這個值應該是唯一的,因為它會當做繫結的識別使用。 從 .NET Framework 4 開始,不需要有名稱的系結和行為。 如需預設設定、無名稱繫結與行為的詳細資訊,請參閱簡化的組態 (部分機器翻譯) 與WCF 服務的簡化組態 (部分機器翻譯)。
openTimeout TimeSpan 值,指定提供用來讓開啟作業完成的時間間隔。 這個值應該大於或等於 Zero。 預設為 00:01:00。
privacyNoticeAt 字串,指定隱私權注意事項所在的 URI。
privacyNoticeVersion 指定目前隱私權注意事項之版本的整數。
proxyAddress 指定 HTTP Proxy 位址的 URI。 如果 useDefaultWebProxytrue,則這項設定必須為 null。 預設值為 null
receiveTimeout TimeSpan 值,指定接收作業完成其作業之時間間隔。 這個值應該大於或等於 Zero。 預設為 00:10:00。
sendTimeout TimeSpan 值,指定提供用來讓傳送作業完成的時間間隔。 這個值應該大於或等於 Zero。 預設為 00:01:00。
textEncoding 設定要在繫結上發出訊息時使用的字元集編碼方式。 有效值如下:

- BigEndianUnicode:Unicode BigEndian 編碼方式。
- Unicode:16 位元編碼方式。
- UTF8:8 位元編碼方式

預設值為 UTF8。 此屬性的型別為 Encoding
transactionFlow 指定繫結程序是否支援流動 WS-Transactions 的布林值。 預設值為 false
useDefaultWebProxy 布林值,指定是否使用系統自動設定的 HTTP Proxy。 如果這個屬性為 null,則 Proxy 位址必須為 true (也就是不設定)。 預設值為 true

子元素

元素 描述
<security> 定義訊息的安全性設定。 此項目的型別為 WSFederationHttpSecurityElement
<readerQuotas> 定義 SOAP 訊息複雜度的條件約束,而這些條件約束可由以此繫結所設定的端點處理。 此項目的型別為 XmlDictionaryReaderQuotasElement
<&lt;reliableSession&gt;> 指定是否在通道端點之間建立可靠的工作階段。

父項目

元素 描述
<bindings> 這個項目會保存標準和自訂繫結的集合。

備註

聯合是在多個系統上共用識別以便進行驗證和授權的能力。 這些識別可以指向使用者或電腦。 聯合 HTTP 支援 SOAP 安全性以及混合模式安全性,但不支援獨立使用傳輸安全性。 此繫結提供 WS-Federation 通訊協定的 Windows Communication Foundation (WCF) 支援。 使用這個繫結設定的服務必須使用 HTTP 傳輸。

繫結是由繫結項目的堆疊組成。 位於

wsFederationHttpBindingwsHttpBinding 中包含的項目相同。

<security> 設為 Message 的預設值時。

wsFederationHttpBinding 會控制<訊息>中訊息安全性設定的詳細資料。 請注意,建立繫結之後,只有當繫結使用的安全性無法變更時,<security> 元素才提供存取權。

wsFederationHttpBinding 也會提供 privacyNoticeAt 屬性,在隱私權注意事項所在的位置設定及擷取 URI。

維持原則的安全相當重要,特別是在聯合案例中。 建議使用某種形式的安全性,例如 HTTPS,來保護原則不受惡意使用者攻擊。

在使用這個繫結的聯合案例中,服務原則可能有重要的資訊,例如用來加密所發行 (SAML) 權杖的金鑰、放入權杖內的宣告類型等等。 如果這個原則遭到竄改,攻擊者可能會發現可導致進一步竄改、資訊洩露和其他惡意行為的已發行權杖金鑰。 為了防止發生這種情況,必須安全地從服務取得原則 (例如,使用 HTTPS)。

如需此繫結的詳細資訊,請參閱作法:建立 WSFederationHttpBinding

範例

<configuration>
  <system.ServiceModel>
    <bindings>
      <wsFederationHttpBinding>
        <binding bypassProxyOnLocal="false"
                 transactionFlow="false"
                 hostNameComparisonMode="WeakWildcard"
                 maxReceivedMessageSize="1000"
                 messageEncoding="Mtom"
                 proxyAddress="http://foo/bar"
                 textEncoding="Utf16TextEncoding"
                 useDefaultWebProxy="false">
          <reliableSession ordered="false"
                           inactivityTimeout="00:02:00"
                           enabled="true" />
          <security mode="None">
            <message negotiateServiceCredential="false"
                     algorithmSuite="Aes128"
                     issuedTokenType="saml"
                     issuedKeyType="PublicKey">
              <issuer address="http://localhost/Sts" />
            </message>
          </security>
        </binding>
      </wsFederationHttpBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

另請參閱