在《从两种安全模式谈起》中,我们对TLS/SSL进行了简单的介绍。我们知道,客户端和服务在为建立安全上下文而进行的协商过程中会验证服务端的X.509证书如否值得信任。...二、创建基于TLS/SSL的WCF服务 ? 接下来我们会通过一个简单的例子来演示如何在WCF服务中使用基于TLS/SSL的Transport安全。...改变证书认证模式 之所以会抛出这样的异常,原因在于:WCF默认采用ChainTrust的模式对服务证书进行验证。...在本章后续的内容中,我们还将不断的使用到它们。现在我们先看讨论一下如何通过ClientCredentials来改变客户端对服务证书的认证模式。...这个终结点行为进行相应的设置,通过上面这段程序对服务证书验证模式的设置与下面的这段配置在功能上是等效的。
Windows® Communication Foundation (WCF) 提供了许多扩展点,供开发人员自定义运行时行为,从而实现服务调度和客户代理调用。...而且,可以在网格两端(客户端或服务中)都使用该实现。再举几个例子后,我将介绍如何绑定此参数检查器。 消息检查器 不管是什么操作,假设您要检查的是流入和流出服务的消息,而不是参数。...例如,我在这里用三个与我以前定义的行为对应的属性对我的服务进行注释: ?...行为验证和绑定配置 除了添加自定义运行时扩展外,还设计了让您执行另外两个任务的行为:自定义验证和绑定配置。请注意图 9 中的 Validate 和 AddBindingParameters。...自定义绑定元素能够访问这些绑定参数,并可以对自定义绑定元素进行设计以查找这些参数(关于自定义绑定的详细信息,请参阅我在 2007 年 7 月一期的“WCF 深度绑定”专栏,网址是:msdn.microsoft.com
因此对于WCF来说,其传输安全主要涉及认证、消息一致性和机密性三个主题,认证不仅包括服务器对客户端的认证,也包括客户端对服务的身份验证,即双向验证,消息一致性保证消息的内容在传输过程中不被篡改,机密性确保只有希望的消息接收方才能读取其中内容...该协议体系可以解决如下两个问题:客户端对服务端的验证;通过对传输层传输的数据段进行加密确保消息的机密性。接下来通过一个例子,来描述连接HTTPS的过程。...客户端会采用站点发回的加密算法,利用从证书中提取的公钥进行加密。...Mixed安全:由于前两者都有着自己的优点和缺点,因此综合考虑,存在如下的解决方案:消息的一致性、机密性和客户端对服务端的认证通过Transport安全模式实现,而服务端对客户端的认证采用Message...在服务安全开启的情况下,服务端在经过认证后会创建一个上下文用于存储基于当前服务调用相关的安全相关的信息,其关系如下表所示。
第1章 WCF简介 (WCF Overview) 1.1 SOA基本概念的和设计思想 1.2 WCF是对现有Windows平台下分布式通信技术的整合 1.3...) 3.1.3 案例演示3-1:如何直接通过绑定进行消息通信 3.1.4 WCF的绑定模型 3.2 绑定编程 ...3.2.1 服务寄宿对绑定的指定 3.2.2 服务调用对绑定的指定 3.3 信道与信道栈 3.3.1 CommunicationObject...应用进行服务寄宿 7.3.2 自定义ServiceHost 7.4 通过IIS进行服务寄宿 7.4.1 案例演示7-2:如何通过IIS进行服务寄宿...RealProxy实现日志功能 8.1.4 WCF客户端是如何进行服务调用的 8.1.5 案例演示8-2:创建一个托管应用模拟最简单的WCF框架
对信道层的扩展主要通过针对绑定的扩展实现,具体来说就是自定义绑定元素,以及相关的信道管理器(信道监听器和信道工厂)、信道来改变对消息的处理和传输方式。...而对于服务模式型层的扩展则主要体现服务端和客户端运行时框架的定制,进而让WCF按照我们希望的方式进行运作。...而WCF为我们提供两种典型的应用自定义组件或者修改运行时属性的形式,即通过定义相应的行为(服务行为、终结点行为、契约行为和操作行为)和自定义ServiceHost,我们也把它们称为WCF的两种扩展形式。...一、WCF四种类型的行为 作为最为常用的扩展方式,WCF的四大行为的使用主要体现在两个方面:其一、WCF自身提供的很多特性和功能是通过行为的方式来实现的;其二、作为使用WCF的应用,可以通过自定义的行为来实现解决具体问题的扩展...针对每个表示操作描述的OperationDescription对象,通过其Behaviors属性得到所有的操作行为,并调用每个操作行为的方法。
在上一篇"x.509证书在WCF中的应用(CS篇)"里,我们知道了如何在应用程序中,利用x.509证书来验证WCF的消息安全(没看过的朋友建议先看下,地址https://cloud.tencent.com...WCF宿主在IIS和普通应用程序里,原理虽然没什么不同,但在实际测试中发现,如果服务端与客户端都采用x.509证书来验证,服务端设置的自定义验证客户端证书的方法总是不起作用,无奈之下,只能在客户端采用了一种变相的方法来验证客户端证书.../颁发服务端证书和客户端证书,对这一块不熟悉的朋友,请参见"[原创图解]Win2003证书服务配置/客户端(服务端)证书申请/IIS站点SSL设置"一文(地址:http://www.cnblogs.com...欢迎转载,转载请注明来自cnblogs"菩提树下的杨过" 编后语: 本文演示了如何将WCF Host在IIS中,并对服务端和客户端都采用x.509证书方式来验证,当然这种方式要求每个客户端机器上都必须安装服务端颁发的证书...在互联网环境下,这可能会给客户端的使用带来麻烦,这时可以采用服务端用x.509方式验证,客户端用经典的用户名/密码的方式来验证,详情可参见http://www.cnblogs.com/fineboy/archive
和传统的分布式远程调用一样,WCF的服务调用借助于服务代理(Service Proxy)。而ChannelFactory则是服务代理的创建者。...为了验证在构造函数中传入绑定对象对ChannelFactory缓存机制的影响,写了如下的代码:通过Binding和EndpointAddress对象创建ClienBase对象。...三、如何有效利用ChannelFactory的缓存机制 为了能够充分利用ChannelFactory的缓存机制,获得更好的服务调用性能,我们可以得出以下两个最佳实践: 避免通过人为指定绑定对象创建...ClientBase对象,应该尽可能使用配置的绑定信息; 避免在ClientBase开启之前读取ChannelFactory、Endpoint和ClientCredential三个属性,...WCF技术剖析之十:调用WCF服务的客户端应该如何进行异常处理 WCF技术剖析之十一:异步操作在WCF中的应用(上篇) WCF技术剖析之十一:异步操作在WCF中的应用(下篇) WCF技术剖析之十二:数据契约
WCF的服务端和客户端之间,如果不作任何安全处理(即服务端的),则所有传输的消息将以明文方式满天飞,在internet/intranet环境下无疑是很不安全的...(当然WCF还有其它安全机制,比如最常见的UserName方式,但通常每次都要从数据库读取用户名/密码信息进行验证,比较麻烦,开销也大,个人觉得还是证书最为方便)--关于x.509证书 的基本知识,可参见...,需要利用服务端证书验证,如果验证通过将正常启动,否则报异常,同时客户端调用服务端方法时,也需要提供客户端证书,服务端接受到客户端证书后,验证客户端证书的有效性,如果通过,则允许客户端正常调用。...下面将逐步讲解如何使用: 1.制作证书 先进入到vs2008的命令行状态,即: 开始-->程序-->Microsoft Visual Studio 2008-->Visual Studio Tools-...服务端,验证客户端证书的模式为自定义,验证时调用Server.CustomX509CertificateValidator这个类来完成验证 <serviceCertificate findValue="
Vgo介绍 Vgo 是一款基于 Gin 开发的开源服务端框架。使用了Redis、Mysql、JWT、队列、等技术栈。比较适合Golang初学者作为学习项目学习。...根目录的asynq.yml文件是配置asynq命令工具的,不使用,忽略即可。...基于本框架的接口,实现了一个拥有简单Rbac的后台管理系统,具体使用方法请参考VgoAdmin项目。...具体使用方法请参考VgoAdmin项目。...Map结合模型验证 见app/User/Api/User.go 的 Register方法自定义翻译器 翻译文字定义在根目录lang下trans.Trans("手机号不能为空", ""),使用:具体见:
虽然本次课程叫WCF技术从入门到实战,但是本次课程的重点还是侧重实战环节,阿笨带来的自己对WCF技术的一些理解和认识吧,力争将WCF技术的真真干货内容分享给大家。...三、C# WCF如何通过优雅的方式进行统一入口调用 采用WCF服务代理工厂(WCFServiceProxyFactory),通过服统一入口给我们的调用者提供的服务吧。...四、WCF技术我们怎么保证客户端调用的安全性? 阿笨的回答是:采用WCF的X509证书身份验证机制。...五、实战演练之C# WCF如何通过优雅的方式进行统一入口调用) 客户端调用WCF服务可以通过添加服务引用的方式添加,这种方式使用起来比较简单,适合小项目使用。...六、实战演练之如何实现WCF混合式访问(同时支持HTTP和TCP) ?
《上篇》对实现可靠会话的绑定元素已经如何使用系统绑定实现可靠会话进行了介绍,下篇将和你探讨WCF可靠会话编程模型余下两个主题:自定义绑定和对消息传递的强制约束。...下面的XML是服务端的WCF配置,我们采用自定义绑定作为终结点绑定。...除了对系统绑定或者自定义绑定进行设置,关于可靠会话编程模型,还涉及到一个契约行为:DeliveryRequirementsAttribute,我们可以利用DeliveryRequirementsAttribute...对服务契约进行一些基于可靠会话的强制性约束。...如果将DeliveryRequirementsAttribute特性应用到服务契约上,客户端在试图开启ChannelFactory对象的时候,同样会验证用于服务调用的终结点绑定是否满足相应的要求
配置服务概述 在设计和实现服务协定后,即可配置服务。在其中可以定义和自定义如何向客户端公开服务,包括指定可以找到服务的地址、服务用于发送和接收消息的传输和消息编码,以及服务需要的安全类型。 ...--可使用.NET Framework配置技术对WCF服务进行配置。通常情况下,向承载WCF服务的Intrnet信息服务(IIS)网站的Web.config文件添加XML元素。...配置绑定 绑定是用于指定连接到Windows Communication Foundation(WCF)服务终结点所必需的通信详细信息的对象。WCF服务中的每个终结点都要求正确指定绑定。 ...: --选择和定义绑定.最简单的方法就是选择WCF包含的系统提供绑定中的一个,并且通过该绑定的默认设置来使用它。。 ...-- 每个服务可以有多个Endpoint,下面元素对每个Endpoint分别进行配置 属性说明: address
所以,如果你对channel layer不甚了解,可以参阅本系列的第一个部分(WCF是如何通过Binding进行通信的)和第二部分(如何对Channel Layer进行扩展——创建自定义Channel)...当service instance调用完毕,将其放入对象池中。这样避免了过于频繁的对象创建而引起对性能的影响。有兴趣的朋友不妨试着做一做。...对输入参数进行验证;而当service method被真正执行后,会生成返回值或者输出参数,在这个时候对ParameterInspectors的遍历再次进行,不果这次调用的是AfterCall方法,AfterCall...方法旨在对返回值或者输出参数进行验证。...WCF后续之旅: WCF后续之旅(1): WCF是如何通过Binding进行通信的 WCF后续之旅(2): 如何对Channel Layer进行扩展——创建自定义Channel WCF后续之旅(3
如果我们希望采用传统的XML序列化方式,我们也可以使用基于XmlSerializer作为序列化器的消息格式化器。...同理,如果操作方法的返回值(并且没有ref/out参数)类型为Message,那么就不需要进行对回复消息的序列化。 上面介绍的都是基于正常服务调用情况下的序列化和反序列化。...它提供了于WCF的集成,使我们可以将这些独立的验证策略通过声明或者配置的方式应用到相应的操作上,最终实现自动的参数验证。而最终完成验证的就是自定义的ParameterInspector。...方法中的输入参数instance和inputs分别表示用于通过InstanceProvider提供的服务实例,以及通过MessageFormatter对请求消息进行反序列化生成的输入参数。...实现了对操作的同步和异步调用。
即使对于WCF和ASMX而言,虽然两者都使用了SOAP,但基于WCF开发的应用程序,仍然可以直接与ASMX进行交互。...和Response, 当一个数据(XML格式的)被封装成SOAP格式的数据流发送到服务器端的时候,就会生成一个进程对象并且把接收到这个Request的SOAP包进行解析,然后对事物进行处理,处理结束以后再对这个计算结果进行...使用可用的 HTTP 验证方案的一个优势在于,无需在 Web 服务中更改代码,IIS 是在 ASP.NET Web 服务被调用之前执行验证的。...ASP.NET 还支持基于 .NET Passport 的验证和其他自定义的验证方案。...对该类对象的跨进程调用将使用 DCOM 进行处理,以确保正确传播事务环境。较难的解决方案是使用底层的 API,手动传播分布的事务。
比如PerSession模式下,如何sesssion已经开始,那个会或其绑定到当前session的InstanceContext,否则return null;对于Singleton模式,由于使用一个service...,现在我们利用它来对返回值或者输出参数进行验证。...具体的做法是,遍历PameteterInpectors集合中的每个PameteterInpector对象,调用AfterCall()方法,从而实现对返回值和输出参数的验证。...对象,调用SerializeReply方法对返回值和输出参数进行序列化。...Step 20:最后作一些资源的释放和清理工作 WCF后续之旅: WCF后续之旅(1): WCF是如何通过Binding进行通信的 WCF后续之旅(2): 如何对Channel Layer进行扩展——
最后一章将进行WCF扩展和新特性的学习,这部分内容有一定深度,有一个基本的了解即可,当需要自定义一个完整的SOA框架时,可以再进行细致的学习和实践。...在WCF中,终结点ServiceEndpoint和其分发器EndpointDispatcher一一对应。...信道分发器ChannelDispatcher包含信息监听器、错误处理器、进行流量控制的服务限流器和信道初始化器,这部分可以扩展的属性包括异常细节信息的传播、手工寻址、最大挂起消息数、同步/异步消息接受和事物控制...ServiceHost对WCF的扩展一般是通过继承自ServiceHost的自定义类来实现,但需要注意,对Description、分发运行时的定制是无效的,此外可以通过自定义类来集成Unity。...接下来通过蒋大师的一个自定义的发现代理服务来彻底了解一个SOA治理中心基本构建方法,其基本步骤包括:创建自定义发现代理服务;寄宿发现代理服务和目标服务;服务的动态调用。
第1章 WCF简介 (WCF Overview) 1.1 SOA的基本概念和设计思想 1.2 WCF是对现有Windows平台下分布式通信技术的整合 1.3 构建一个简单的WCF应用 1.3.1 步骤一...消息分发 第3章 绑定 (Binding) 3.1. 绑定模型 3.1.1. 信道与信道栈 3.1.2. 实例演示:如何直接通过绑定进行消息通信(S301) 3.1.3....信道监听器 3.3.1. IChannelListener与ChannelListenerBase 3.3.2. 信道栈的创建/使用模式 3.3.3....实例演示:如何使用自定义ServiceHost(S704) 7.4.3. ASP.NET并行模式 7.4.4. ASP.NET兼容模式 7.4.5. 非HTTP协议寄宿 7.5....服务调用的大致流程 8.1.4. 实例演示:创建一个WCF框架模拟程序 8.2. ChannelFactory 8.2.1.
WCF为你提供了如下三种方式来验证凭证中用户名是否和密码相符: Windows:将用户名和密码映射为Windows帐号和密码,采用Windows认证; MembershipProvider:利用配置的MembershipProvider...验证用户名和密码; 自定义:通过继承抽象类UsernamePasswordValidator,自定义用户名/密码验证器进行验证。...我们不打算从新创建一个解决方案,而是直接对之前演示的实例进行改造。...如下面的代码片断所示,在对服务进行寄宿之前,我通过调用Membership的静态方法CreateUser创建了一个用户名、密码和Email分别为Zhansan、Pass@word和zhanshan@gmail.com...在下面的代码中,我进行了两次服务调用。但是创建服务代理对象的ChannelFactory被设置了不同的用户名凭证。
WCF通过系统绑定对绑定元素进行了定制,那么能否在终结点级别对组成该终结点的ABC(地址、绑定和契约)也进行相应的定制呢?实际上这对于最新版本的WCF是可行的,我们将这个机制称为“标准终结点”。...在使用的时候,如果你需要的终结点要素和标准终结点完全一致,就无需进行重复的设置;如果不一致,则只需要单独对此进行重新设置以覆盖定义在标准终结点的默认设置。...和自定义绑定一样,你需要为自定义的标准终结点起一个名字。...在《通过自定义ServiceHost实现对WCF的扩展[实例篇]》中,我们介绍了如何通过自定义ServiceHost的方式实现WCF与Unity这个IoC框架进行集成。...借助于默认终结点(《[WCF 4.0新特性] 默认终结点》)的自动添加机制,WCF会为寄宿服务实现的每个服务契约针对于每一个基地址添加一个终结点。
领取专属 10元无门槛券
手把手带您无忧上云