共用方式為


<<wsFederationHttpBinding>>

定義支援 WS-Federation 的繫結。

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

<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 maxDepth="integer" 
           maxStringContentLength="integer"
           maxByteArrayContentLength="integer"
           maxBytesPerRead="integer"
           maxNameTableCharCount="integer" />
    </binding>
</wsFederationBinding>

屬性和項目

屬性

屬性 描述

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

包含此繫結之組態名稱的字串。這個值應該是唯一的,因為它會當做繫結的識別使用。

openTimeout

TimeSpan 值,指定提供用來讓開啟作業完成的時間間隔。這個值應該大於或等於 Zero。預設為 00:01:00。

privactyNoticeAt

字串,指定隱私權注意事項所在的 URI。

privactyNoticeVersion

指定目前隱私權注意事項之版本的整數。

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。如果這個屬性為 true,則 Proxy 位址必須為 null (也就是不設定)。預設為 true

子項目

項目 描述

<wsFederationHttpBinding> 的 <security>

定義訊息的安全性設定。此項目的型別為 WSFederationHttpSecurityElement

<readerQuotas>

定義 SOAP 訊息複雜度的條件約束,而這些條件約束可由以此繫結所設定的端點處理。此項目的型別為 XmlDictionaryReaderQuotasElement

<reliableSession> 項目

指定是否在通道端點之間建立可靠的工作階段。

父項目

項目 描述

<bindings>

這個項目會保存標準和自訂繫結的集合。每一個項目都是由它的 name 所識別。服務會使用 name 來連結繫結,以便利用繫結。

備註

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

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

wsFederationHttpBinding 中的繫結項目堆疊與 wsHttpBinding 中包含的繫結項目堆疊相同。

(當 <wsFederationHttpBinding> 的 <security> 設定為 Message 的預設值時)。

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

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

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

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

如需此繫結的詳細資訊,請參閱 How to: Create a WSFederationHttpBinding

範例

<configuration>
<system.ServiceModel>
<bindings>
<wsFederationHttpBinding>
    <binding name="test"
        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="https://localhost/Sts" />
           </message>
        </security>
    </binding>
</wsFederationBinding>
</bindings>
</system.ServiceModel>
</configuration>

請參閱

參考

WSFederationHttpBinding
WSFederationHttpBindingElement

概念

<binding>

其他資源

How to: Create a WSFederationHttpBinding
Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients