WCFNetTcpBindingTransport安全模式(1)NetTcpSecurity定義

zting科技發表於2017-01-11

WCF NetTcpBinding Transport安全模式(1)NetTcpSecurity定義

預設情況下,NetTcpBinding會生成一個執行時通訊堆疊,該堆疊使用傳輸安全。

NetTcpBinding類共有四個建構函式,分別如下:

q  NetTcpBinding()。初始化NetTcpBinding新例項。

q  NetTcpBinding(SecurityMode)。用所使用指定安全型別初始化NetTcpBinding新例項。

q  NetTcpBinding(String)。使用指定配置名稱初始化NetTcpBinding新例項。

q  NetTcpBinding(SecurityMode, Boolean)用所使用指定安全型別和一個指示是否顯式啟用安全會話值來初始化NetTcpBinding新例項。

NetTcpBinding類有一個型別為NetTcpSecurity屬性,名為SecurityNetTcpSecurity指定用NetTcpBinding配置終結點所使用傳輸級安全性和訊息級安全性型別。程式碼清單11-8NetTcpSecurity定義(部分成員)。

程式碼清單11-8   NetTcpSecurity定義

public sealed class NetTcpSecurity

{

    // Fields

    internal const SecurityMode DefaultMode = SecurityMode.Transport;

    // Methods

    public NetTcpSecurity();

  

    public MessageSecurityOverTcp Message {get; set; }

    public SecurityMode Mode { get; set; }

    public TcpTransportSecurity Transport { get; set; }

}

從以上程式碼可以知道,NetTcpSecurityNetTcpBinding設定安全模式,並根據安全模式指定傳輸和訊息安全細節。同時,可以看到預設情況下,NetTcpSecurityNetTcpBinding設定傳輸安全型別為Transport。若安全型別為Transport,那麼需要設定TcpTransportSecurity屬性值,TcpTransportSecurity定義如程式碼清單11-9所示。

程式碼清單11-9     TcpTransportSecurity定義(部分程式碼)

public sealed class TcpTransportSecurity

{

    internal const TcpClientCredentialType DefaultClientCredentialType = TcpClientCredentialType.Windows;

    internal const ProtectionLevel DefaultProtectionLevel = ProtectionLevel.EncryptAndSign;

 

    [DefaultValue(1)]

    public TcpClientCredentialType ClientCredentialType {  get; set; }

    public ExtendedProtectionPolicy ExtendedProtectionPolicy {  get; set; }

    [DefaultValue(2)]

    public ProtectionLevelProtectionLevel { get; set; }

}

以上程式碼公開了TcpTransportSecurity三個屬性,其中ClientCredentialType屬性用來獲取或設定用於身份驗證客戶端憑據型別;ExtendedProtectionPolicy屬性用來獲取或設定 TCP 傳輸擴充套件保護策略;ProtectionLevel用來設定保護級別。在預設情況下,客戶端憑據型別設定為Windows,保護級別為EncryptAndSign

下面的系列博文通過例項來探究NetTcpBinding安全配置。

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

 


本文轉自玄魂部落格園部落格,原文連結:http://www.cnblogs.com/xuanhun/archive/2012/06/24/2560033.html,如需轉載請自行聯絡原作者


相關文章