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所示。
查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/
图11-12 凭据为证书(客户端和服务端互不验 证)的运行结果
将图11-12的运行结果,与之前采用Windows验证对比,用户名变成了客户端证 书的名称和证书序列号的组合,凭据类型为“X509”。通过TcpTrace 截获的信息,可以给我们更多的启示,如图11-13所示。
图11-13 TcpTrace截获的凭据为证书(客户端 和服务端互不验证)部分传输信息
图11-13所示的信息为服务端返回的部分信息,我们从中可以看到信息中附加 了当前用户证书存储区的证书信息。
----------------------注:本文部分内容改编自《.NET 安全揭秘》
作者:玄魂p> 出处:http://www.cnblogs.com/xuanhun/
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索客户端
, 验证
, http 安全证书
, 配置
, 证书
, 服务
信息
wcf nettcpbinding、wcf binding、wcf wshttpbinding、wcf binding类型、wcf basichttpbinding,以便于您获取更多的相关知识。