程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> WCF NetTcpBinding Transport安全模式(6)

WCF NetTcpBinding Transport安全模式(6)

編輯:關於.NET

ClientCredentialType證書驗證模式---- PeerTrust驗證模式

當證書驗證模式設置為“PeerTrust”時,服務端或者客戶端會驗 證證書是否存在於TrustedPeople 證書存儲區中。

修改配置文件采用“PeerTrust”驗證模式如以下代碼。

在服務端設置對客戶端的驗證模式設置為“PeerTrust”:

      <clientCertificate >
    
         <certificate findValue="XuanhunClient"
    
                       storeLocation="CurrentUser"
    
                       storeName="My"
    
                       x509FindType="FindBySubjectName"/>
    
<authentication certificateValidationMode="PeerTrust" 

trustedStoreLocation="CurrentUser"  />
    
       </clientCertificate>

在客戶端設置對服務端驗證模式設置為“PeerTrust”:

   <serviceCertificate >
    
    <defaultCertificate 
    
                 x509FindType="FindBySubjectName"
    
                storeLocation="CurrentUser"
    
              storeName="My"
    
                findValue="XuanhunServer"
    
                />
    
<authentication certificateValidationMode="PeerTrust"  

/>
    
            </serviceCertificate>

在運行程序之前,先來看看前面生成的證書目前存放在哪裡。啟動mmc控制台 ,添加新的管理單元,選擇證書,然後添加當前用戶和本地計算機兩個節點,如 圖11-14所示。

圖11-14               添加證書管理單元

添加管理單元之後,查看當前用戶下的各類證書,如圖11-15所示。

圖11-15        查看證書

在圖11-15中可以看到,生成的證書“XuanhunClient”和 “XuanhunServer”在當前用戶的個人存儲區中,不在受信任人的存儲 區中。

運行服務端和客戶端,在客戶端報出異常,如圖11-16所示。

圖11-16        證書不在被信任人存儲區中

從圖11-16中的異常信息可以明顯地看出,如果證書不在受信任人的存儲區中 ,采用“PeerTrust”驗證模式時是無法通過驗證的。有沒有辦法將這 兩個證書放到受信任人的證書存儲區中呢?其實很簡單,只需要在證書管理單元 中將兩個證書拖拽到受信任人存儲區中即可,如圖11-17所示。

圖11-17        將證書添加到受信任人存儲區

現在運行程序,是不是就可以通過驗證了呢?還不行,不要忘記修改配置文件 中的“storeName”屬性為“TrustedPeople”。

修改客戶端“storeName”屬性:

<clientCertificate
    
              findValue="XuanhunClient"
    
               storeLocation="CurrentUser"
    
               x509FindType="FindBySubjectName"
    
               storeName="TrustedPeople"/>

修改服務端“storeName”屬性:

    <serviceCredentials >
    
            <serviceCertificate
    
               x509FindType="FindBySubjectName"
    
                storeLocation="CurrentUser"
    
                storeName="TrustedPeople"
    
                findValue="XuanhunServer"
    
             />
    
…
    
 </serviceCredentials>

運行測試程序,結果如圖11-18所示。

圖11-18        “PeerTrust”驗證模式運 行結果

圖11-18 所示為客戶端顯示的結果,說明客戶端和服務端的證書已經通過相互 驗證。

------------------------------注:本文部分內容改編自《.NET 安全揭秘 》

作者:玄魂

出處:http://www.cnblogs.com/xuanhun/

查看本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved