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

WCF NetTcpBinding Transport安全模式(9)

編輯:關於.NET

ClientCredentialType證書驗證模式----Custom驗證模式

Custom驗證模式提供了更靈活的可定制的證書驗證方式,當需要自定義驗證的 時候,可以采用這種方式。以下代碼是修改客戶端驗證為“Custom” 模式後的相關配置。

設置客戶端對服務端憑據驗證模式為“Custom”:

<serviceCertificate >
    
   <authentication certificateValidationMode="Custom"
    
          

customCertificateValidatorType="WcfSecurityExampleServiceLibrary.M

yX509CertificateValidator,
    
          WcfSecurityExampleServiceLibrary" />
    
        </serviceCertificate>

如以上代碼所示,配置“Custom”驗證模式需要指定自定義的驗證 程序,本例中類型為 “WcfSecurityExampleServiceLibrary.MyX509CertificateValidator&rdqu o;,名稱空間為“WcfSecurityExampleServiceLibrary”,實現的代 碼如代碼清單11-25所示。

代碼清單11-24    自定義驗證程序

using System;
    
using System.Collections.Generic;
    
using System.Linq;
    
using System.Text;    
    
using System.IdentityModel.Selectors;
    
     
    
namespace WcfSecurityExampleServiceLibrary
    
{
    
    public class MyX509CertificateValidator : X509CertificateValidator
    
    {
    
        public override void Validate

(System.Security.Cryptography.X509Certificates.X509Certificate2 

certificate)
    
        {
    
            if (certificate.SerialNumber.ToLower() != 

"9414bfe12286dc874b631a702c7d2ad9")
    
                throw new Exception("Certificate  Error!");
    
        }
    
    }
    
}

以上代碼給出了一個最簡單的實現自定義驗證的示例。首先,實現自定義驗證 程序的類必須要繼承X509CertificateValidator抽象類,然後根據實際情況重寫 Validate方法。本例中,簡單地判斷服務端證書的序列號是否符合預期。初始情 況下,要驗證的序列號和服務端證書的序列號不符,運行結果如圖11-19所示。

查看本欄目

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