WCF NetTcpBinding Transport安全模式(5) ClientCredentialType证书验证模式—-None验证模式…

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所示异常信息。

WCF NetTcpBinding Transport安全模式(5) ClientCredentialType证书验证模式----None验证模式...

图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所示。

WCF NetTcpBinding Transport安全模式(5) ClientCredentialType证书验证模式----None验证模式...

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

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

WCF NetTcpBinding Transport安全模式(5) ClientCredentialType证书验证模式----None验证模式...

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

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

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

 



本文转自玄魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/archive/2012/06/24/2560077.html,如需转载请自行联系原作者

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108696.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 企业微信api,企业微信sdk接口「建议收藏」

    企业微信api,企业微信sdk接口「建议收藏」企业微信api,企业微信sdk接口1、企业微信SDK接口API调用-企业微信好友收发消息/***给企业微信好友发消息*@authorwechat:happybabby110*@bloghttp://www.wlkankan.cn*/@AsyncpublicvoidhandleMsg(ChannelHandlerContextctx,TransportMessagevo,StringcontentJson…

    2022年10月2日
    3
  • pychram2021.12激活【2021.10最新】

    (pychram2021.12激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html41MD9IQHZL-eyJsa…

    2022年3月30日
    53
  • 浅谈时间轮算法[通俗易懂]

    浅谈时间轮算法[通俗易懂]时间轮在计算机世界中,只有待解决的问题变得大规模后,算法的价值才能够最大化的体现。时间轮算法可以将插入和删除操作的时间复杂度都降为O(1),在大规模问题下还能够达到非常好的运行效果。如果我们要实现一个定时任务该如何实现呢?最简单的方式就是使用一个任务队列来完成定时任务。具体实现细节下面详细展开。

    2022年9月27日
    2
  • python django环境搭建_python的django框架

    python django环境搭建_python的django框架Django是一个由Python编写的一个开放源代码的Web应用框架。使用Django,只要很少的代码,Python的开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的Web服务。Python+Django是快速开发、设计、部署网站的最佳组合。Django版本与Python环境的对应表如下,建议对照表来选择Django和Python版本,以免造成不兼容等问题。 Django版本 Python版本 …

    2025年10月1日
    2
  • matlab多重比较lsd法,多重比较LSD-t值的计算(附证明方法)

    matlab多重比较lsd法,多重比较LSD-t值的计算(附证明方法)多重比较LSD-t值的计算问题的提出:向学术期刊投稿时,“变态”的审稿人向你“索要”LSD-t值,可是SPSS的输出结果中没有这个值——是不是有点悲催?!另外,大家还会有一个常见的疑问:采用LSD-t法进行两两比较之后得出来的p值,需不需要调整显著性水平?我们先把原始数据和答案给出来,然后再讲一讲其中的数理逻辑。本例使用的原始数据如下图所示,有兴趣的读者可以用本数据进行对照学习(本例采用单因素方差…

    2022年6月12日
    45
  • stm32开发教程_单片机STM32

    stm32开发教程_单片机STM32本博客的编写目的:一、自我总结,记录。二、分享,输出,加深思考。三、不作细致如书本般编排,尽管那样的排版很好看,但是过于耗费时间,还有很多东西没有必要说明,完全可以自己去解决,但还是尽量做好排版,便于阅读。四、尽可能举一反三,做到真正能够处理实际问题。STM32开发实战(1)目录一、概述,目的二、搭建步骤三、时钟部分案例分析四、理论总结一、

    2025年9月29日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号