共用方式為


<wsFederationHttpBinding>

定義了支援 WS-Federation 的綁定。

<組態>
   <system.service模型>
     <裝訂>
       <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 maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</wsFederationHttpBinding>

屬性和項目

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

Attributes

Attribute Description
繞過代理本地 一個布林值,指示是否要繞過代理伺服器取得本地位址。 預設值為 false
結束 時間 一個 TimeSpan 指定緊密操作完成所需時間間隔的值。 此值應大於或等 Zero於 。 預設值是 00:01:00。
hostnameComparisonMode 指定用於解析 URI 的 HTTP 主機名稱比較模式。 此屬性的型別 HostNameComparisonMode為 ,表示在 URI 匹配時是否使用主機名稱來存取服務。 預設值為 StrongWildcard,忽略了配對中的主機名稱。
maxBufferPoolSize 一個整數,指定此綁定的最大緩衝池大小。 預設為 524,288 位元組(512 × 1024)。 Windows 通訊基礎(WCF)的許多部分都使用緩衝區。 每次使用緩衝區都建立與銷毀成本高昂,緩衝區的垃圾回收也同樣昂貴。 使用緩衝池時,你可以從緩衝池中取一個緩衝區,使用完畢後再歸還給池。 因此避免了建立與銷毀緩衝區的開銷。
最大接收訊息大小 一個正整數,指定在設定此綁定的通道上可接收的最大訊息大小(以位元組計,包括標頭)。 超過此限制的訊息發送者將收到 SOAP 錯誤。 接收端會丟棄訊息,並在追蹤日誌中建立事件的條目。 預設是 65536。
messageEncoding 定義用於編碼訊息的編碼器。 有效的數值包括以下幾項:

- 文字:使用簡訊編碼器。
- MTOM:使用訊息傳輸組織機制 1.0(MTOM)編碼器。

預設為 Text。

此屬性的類型 WSMessageEncoding為 。
名稱 一個包含綁定設定名稱的字串。 這個值應該是唯一的,因為它是用來識別裝訂的。 從 .NET Framework 4 開始,綁定和行為不再需要名稱。 欲了解更多關於預設設定及無名綁定與行為的資訊,請參閱簡化設定與簡化配置(Simplified Configuration for WCF Services)。
openTimeout 一個 TimeSpan 指定開啟操作完成所需時間區間的值。 此值應大於或等 Zero於 。 預設值是 00:01:00。
隱私通知 一個字串,指定隱私聲明所在的 URI。
隱私通知版本 一個整數,用來指定當前隱私聲明的版本。
proxyAddress 一個指定 HTTP 代理位址的 URI。 若 useDefaultWebProxytrue則此設定必須為 null。 預設值為 null
收到Timeout 一個 TimeSpan 指定接收操作完成所需時間區間的值。 此值應大於或等 Zero於 。 預設值是 00:10:00。
sendTimeout 一個 TimeSpan 指定傳送操作完成所需時間間隔的值。 此值應大於或等 Zero於 。 預設值是 00:01:00。
文字編碼 設定字元集編碼用於綁定上的訊息輸出。 有效的數值包括以下幾項:

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

預設是 UTF8。 這個屬性屬於 Encoding......
transactionFlow 一個布林值,指定綁定是否支援流動的 WS-Transactions。 預設值為 false
useDefaultWebProxy 一個布林值,表示系統自動設定的 HTTP 代理是否被使用。 若此屬性為 null,代理位址必須是true(即非設定)。 預設值為 true

子專案

元素 Description
<安全> 定義訊息的安全設定。 此元素的類型 WSFederationHttpSecurityElement為 。
<讀者配額> 定義了由端點可處理的 SOAP 訊息複雜度的限制,這些訊息可由配置為此綁定的端點所能處理。 此元素的類型 XmlDictionaryReaderQuotasElement為 。
<可靠會話> 規定通道端點間是否建立可靠的會話。

父項目

元素 Description
<裝訂> 此元素包含標準與自訂裝訂的集合。

備註

聯邦是指跨多個系統共享身份以進行認證與授權的能力。 這些身份可以指使用者或機器。 聯邦 HTTP 支援 SOAP 安全性以及混合模式安全性,但並不完全支援傳輸安全。 此綁定提供 Windows 通訊基礎(WCF)對 WS-Federation 協定的支援。 以此綁定配置的服務必須使用 HTTP 傳輸。

綁定由一堆綁定元素組成。 結合元素的堆疊

wsFederationHttpBinding 與包含於 wsHttpBinding

<安全性> 設定為預設值時 Message

wsFederationHttpBinding控制訊息安全設定的<>細節。 請注意, <安全> 元素只提供存取權限,因為綁定所使用的安全性一旦建立後無法更改。

同時 wsFederationHttpBinding 也提供 privacyNoticeAt 屬性,用以設定及檢索該隱私聲明所在的 URI。

在聯邦情境中,維護政策安全尤其重要。 建議使用某種安全措施,如 HTTPS,以保護政策免受惡意使用者侵害。

在使用此綁定的聯邦情境中,服務政策可能包含重要資訊,例如用於加密已發行(SAML)令牌的金鑰、應放入令牌的權利要求類型等。 若此政策被竄改,攻擊者可能會發現已發行令牌的金鑰,進而進一步竄改、資訊外洩及其他惡意行為。 為防止此情況,該政策必須安全取得(例如使用 HTTPS)。

欲了解更多關於此綁定的資訊,請參閱 如何:建立 WSFederationHttpBinding

Example

<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>

另請參閱