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的属性,名为Security。NetTcpSecurity指定用NetTcpBinding配置的终结点所使用的传输级安全性和消息级安全性的类型。代码清单11-8是NetTcpSecurity的定义(部分成员)。

代码清单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; }

}

从以上代码可以知道,NetTcpSecurity为NetTcpBinding设置安全模式,并根据安全模式指定传输和消息安全细节。同时,可以看到默认情况下,NetTcpSecurity为NetTcpBinding设置的传输安全类型为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/

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索安全
, 代码
, 传输
, 类型
, public
, transport
get模式
wcf nettcpbinding、wcf binding、wcf wshttpbinding、wcf binding类型、wcf basichttpbinding,以便于您获取更多的相关知识。

时间: 2024-09-24 00:18:41

WCF NetTcpBinding Transport安全模式(1)NetTcpSecurity定义的相关文章

WCF NetTcpBinding Transport安全模式(4)

ClientCredentialType证书验证模式----基本配置 在Transport安全模式下,客户端凭据支持三种类型:None.Windows. Certificate.默认情况下采用Windows凭据类型.前面几个小节的示例中一直在 使用Windows凭据类型,本小节主要探讨Certificate凭据.   使用Certificate凭据,首先需要准备服务端和客户端证书.创建证书 的命令如图11-10所示. 图11-10            创建证书 执行图11-10的命令,分别创建

WCF NetTcpBinding Transport安全模式(3)

ProtectionLevel设置保护级别 书接上文,是哪一项配置使得WCF对传输的消息进行加密操作了呢?继续修改 配置文件,客户端配置文件如代码清单11-18所示,服务端配置文件如代码清单 11-19所示. 代码清单11-18  修改客户端的protectionLevel <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> &

WCF NetTcpBinding Transport安全模式(9)

ClientCredentialType证书验证模式----Custom验证模式 Custom验证模式提供了更灵活的可定制的证书验证方式,当需要自定义验证的 时候,可以采用这种方式.以下代码是修改客户端验证为"Custom" 模式后的相关配置. 设置客户端对服务端凭据验证模式为"Custom": <serviceCertificate > <authentication certificateValidationMode="Custom&

WCF NetTcpBinding Transport安全模式(8)

ClientCredentialType证书验证模式---- PeerOrChainTrust验证模式 PeerOrChainTrust验证模式验证证书是否位于 TrustedPeople 证书存储区中 ,或通过构建证书信任链来验证证书.如果证书通过任一验证方法,就是受信任 的.设置验证模式为"PeerOrChainTrust"的配置如以下代码所示. 在服务端设置验证客户端凭据模式为"PeerOrChainTrust": <clientCertificate

WCF NetTcpBinding Transport安全模式(7)

ClientCredentialType证书验证模式---- ChainTrust验证模式 ChainTrust验证模式使用证书链来验证 X.509证书是否有效以及是否由受信任 的颁发者所颁发.它指定每个证书都必须存在于某个证书层次结构中,而该层次 结构以位于证书链顶端的根证书颁发机构结束.它将验证 X.509证书是否由受信 任的证书颁发机构颁发.通过搜索证书存储区并确定是否已将该证书颁发机构的 证书指定为受信任的证书,可以做到这一点.为了使 WCF能够做出此判断,必须 将证书颁发机构证书链安装

WCF NetTcpBinding Transport安全模式(6)

ClientCredentialType证书验证模式---- PeerTrust验证模式 当证书验证模式设置为"PeerTrust"时,服务端或者客户端会验 证证书是否存在于TrustedPeople 证书存储区中. 修改配置文件采用"PeerTrust"验证模式如以下代码. 在服务端设置对客户端的验证模式设置为"PeerTrust": <clientCertificate > <certificate findValue=&q

WCF NetTcpBinding Transport安全模式(5)

ClientCredentialType证书验证模式----None验证模式 需要说明的是,和服务器端证书配置在<serviceBehaviors>节中,而客 户端配置在endpointBehaviors中.在代码清单11-19的服务端配置和代码清单11 -23的客户端配置中,都将certificateValidationMode属性设置为 "None".protectionLevel设置为"EncryptAndSign",由 于证书验证采用的是SSL加

WCF NetTcpBinding Transport安全模式(2) 默认安全配置

新建一个类库名为"WcfSecurityExampleServiceLibrary"的类库项目,添加如代码清单11-10所示的契约,其中将示例契约命名为HelloService. 代码清单11-10  HelloService契约 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel;

启用WCF NetTcpBinding的共享端口

在一般的网络环境中,尽可能避免网络攻击,都会通过防火墙将绝大部分的端口封掉,仅仅保留那些常用的网络服务所用的端口,或者为某一个类应用保留少量的端口.IIS 使用HTTP.SYS实现了对80端口的共享使用,所以我们可以在IIS上部署多个应用程序.那么我们在主机上部署多个TCP的WCF服务,只有有限开放端口的时候怎么办呢,答案就是启用NET.TCP的端口共享服务.通过端口共享服务,WCF就可以使用同一个端口部署多个服务:   启用端口共享服务只需要三个步骤: 启用 NET.TCP Port 共享服务