ClientCredentialType證書驗證模式----None驗證模式
需要說明的是,和服務器端證書配置在<serviceBehaviors>節中,而客 戶端配置在endpointBehaviors中。在代碼清單11-19的服務端配置和代碼清單11 -23的客戶端配置中,都將certificateValidationMode屬性設置為 “None”。protectionLevel設置為"EncryptAndSign",由 於證書驗證采用的是SSL加密,僅支持EncryptAndSign的保護級別。
此時啟動服務端進行監聽,然後啟動客戶端,得到如圖11-11所示的異常信息 。
圖11-11 DNS匹配錯誤
出現這種異常的原因在於服務端采用證書驗證之後,默認會將證書名(這裡為 “XuanhunServer”)作為服務提供的域名。解決方案也很簡單,只需 在客戶的<endpoint>配置節下配置標識屬性,指定DNS即可,如代碼清單 11-24所示。
代碼清單11-24 配置DNS
<endpoint name="helloEndPoint" address="net.tcp://127.0.0.1:64567/HelloService" binding="netTcpBinding" bindingConfiguration="netTcpBinding" contract="WcfSecurityExampleServiceLibrary.IHelloService" behaviorConfiguration="ForListen"> <identity> <dns value="XuanhunServer"/> </identity> </endpoint>
在以上代碼中,通過設置<dns value="XuanhunServer"/>指 定該終結點請求的域名為"XuanhunServer"。修改之後再次運行客戶端 ,結果如圖11-12所示。
查看本欄目