zoukankan      html  css  js  c++  java
  • WCF NetTcpBinding Transport安全模式(5) ClientCredentialType证书验证模式None验证模式

    WCF NetTcpBinding Transport安全模式(5)    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所示。

    图11-12        凭据为证书(客户端和服务端互不验证)运行结果

    将图11-12运行结果,与之前采用Windows验证对比,用户名变成了客户端证书名称和证书序列号组合,凭据类型为“X509”。通过TcpTrace截获信息,可以给我们更多启示,如图11-13所示。

    图11-13        TcpTrace截获凭据为证书(客户端和服务端互不验证)部分传输信息

    11-13所示信息为服务端返回部分信息,我们从中可以看到信息中附加了当前用户证书存储区证书信息。

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

     


    作者:玄魂
    出处:http://www.cnblogs.com/xuanhun/
    原文链接:http://www.cnblogs.com/xuanhun/ 更多内容,请访问我的个人站点 对编程,安全感兴趣的,加qq群:hacking-1群:303242737,hacking-2群:147098303,nw.js,electron交流群 313717550。
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    关注我:关注玄魂的微信公众号

  • 相关阅读:
    雅虎、网易ajax标签导航效果的实现
    仿淘宝网站的导航标签效果!
    FLASH2007展望
    "运行代码”功能整理发布
    获取远程文件保存为本地文件(精简实用)
    整理JS+FLASH幻灯片播放图片脚本代码
    解决IE更新对FLASH产生影响
    模仿combox(select)控件
    0209.Domino R8.0.x升级指南
    Lotus Domino 中的高级 SMTP 设置Notes.ini相关参数
  • 原文地址:https://www.cnblogs.com/xuanhun/p/2560077.html
Copyright © 2011-2022 走看看