系統講解WCF傳輸安全知識
WCF框架是目前功能比較強大的一個由微軟開發的開發工具,可以幫助開發人員實現許多功能。WCF傳輸安全取決于使用的綁定和后續傳輸。#t#
例如,當使用 WSHttpBinding 類時,傳輸為 HTTP,保證傳輸安全的主要機制為 HTTP 上的安全套接字層 (SSL)(通常稱為 HTTPS)。本主題討論 WCF 系統提供的綁定中使用的主要傳輸安全機制。
注意:
將 SSL 安全與 .NET Framework 3.5 和更高版本一起使用時,WCF 客戶端將使用其證書存儲區中的中間證書和 SSL 協商期間收到的中間證書,對服務的證書執行證書鏈驗證。.NET Framework 3.0 僅使用本地證書存儲區中安裝的中間證書。
BasicHttpBinding
默認情況下,BasicHttpBinding 類不提供安全。此綁定旨在提供與不實現安全機制的 Web 服務提供程序的互操作性。但可以通過將 Mode 屬性設置為 None 以外的值來啟用安全。若要啟用WCF傳輸安全,請將該屬性設置為 Transport。
BasicHttpBinding 類主要用于與現有的 Web 服務和由 Internet 信息服務 (IIS) 承載的許多服務進行互操作。因此,此綁定的傳輸安全旨在實現與 IIS 站點的無縫互操作。通過將安全模式設置為 Transport,然后設置客戶端憑據類型可以實現這一目的。憑據類型值對應于 IIS 目錄安全機制。下面的代碼演示如何設置模式以及如何將憑據類型設置為 Windows。當客戶端和服務器在同一個 Windows 域中時,您可以使用此配置。
或在配置中:
- < bindings>
- < basicHttpBinding>
- < binding name="SecurityByTransport">
- < security mode="Transport">
- < transport clientCredentialType=
"Windows" /> < /security>- < /binding>
- < /basicHttpBinding>
- < /bindings>
下面的WCF傳輸安全代碼使用***標識證書的證書指紋。有關 證書的更多信息,請參見使用證書。
或者,在客戶端配置中的 behaviors 部分使用 clientCredentials element 指定證書。
- < behaviors>
- < behavior>
- < clientCredentials>
- < clientCertificate findValue=
"101010101010101010101010101010000000000"
storeLocation="LocalMachine"
storeName="My" X509FindType=
"FindByThumbPrint"/>- < /clientCertificate>
- < /clientCredentials>
- < /behavior>
- < /behaviors>
NetNamedPipeBinding
NetNamedPipeBinding 類用于進行有效的計算機內通信;也就是說,雖然可以在同一網絡上的兩臺計算機之間創建命名管道通道,但進程是在同一臺計算機上運行的。此綁定只提供傳輸級別的安全。在創建使用此綁定的應用程序時,終結點地址必須包括“net.pipe”作為終結點地址的協議。
WSFederationHttpBinding
使用傳輸安全時,此綁定與已頒發的令牌 (TransportWithMessageCredential) 一起使用 HTTP 上的 SSL(稱為 HTTPS)。有關 聯合身份驗證應用程序的更多信息,請參見聯合令牌與頒發的令牌。
NetPeerTcpBinding
NetPeerTcpBinding類是旨在使用對等網絡功能進行有效通信的一種安全傳輸。TCP 是協議,這與類和綁定的名稱相一致。當安全模式設置為“傳輸”時,綁定將實現 TCP 上的 TLS。有關 對等功能的更多信息,請參見對等網絡。
MsmqIntegrationBinding 和 NetMsmqBinding
有關消息隊列(以前稱為 MSMQ)的傳輸安全的完整討論,請參見使用WCF傳輸安全保護消息。