最近做WCF开发,有个需求是在服务端做认证,网上查资料了解到可以用UserName和Password 来做认证,只需要写好配置文件和在服务端写好验证类就行了,但是网上普遍的博文都是需要用证书,而我自己却只想做个简单的认证不想用证书来增加传输的安全性。随后在网上浏览了很久都没有找到现成的例子,最后明白靠人不如靠己啊哈哈
,于是决定自己好好研究下WCF的认证体系。 这里特别感谢蒋金楠老师的博客 http://www.cnblogs.com/artech/archive/2011/05/22/authentication_01.html
这篇博文从WCF的两种安全模式谈起,讲到WCF的安全体系主要包括三个方面:传输安全(Transfer Security)、授权或者访问控制(Authorization OR Access Control)以及审核(Auditing)。而传输安全又包括两个方面:认证(Authentication)和消息保护(Message Protection)。认证帮助客户端或者服务确认对方的真实身份,而消息保护则通过签名和加密实现消息的一致性和机密性。WCF采用两种不同的机制来解决这三个涉及到传输安全的问题,我们一般将它们称为不同的安全模式,即Transport安全模式和Message安全模式。 这篇博文详细介绍了Transport ,Message 以及他们两种混合的Mixed模式,有兴趣的童鞋可以看看。
而我今天的任务就是要仔细研究下 在Transport模式和Message模式下的具体应用的异同,以便来实现上文所说的传输安全。 对于服务器,如果我们做传输安全的功能需要添加Binding的安全性设置和设置具体的服务器认证方式。如下,在配置文件中的设置:
<behavior name="metadataBehavior">
<serviceCredentials>
<userNameAuthentication
userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="WCFTestService.CustomValidator, WCFTestService"/>
</serviceCredentials>
</behavior>
<binding name="basicHttpBinding" receiveTimeout="00:10:00">
![生气](http://static.blog.csdn.net/xheditor/xheditor_emot/default/mad.gif)
这篇博文从WCF的两种安全模式谈起,讲到WCF的安全体系主要包括三个方面:传输安全(Transfer Security)、授权或者访问控制(Authorization OR Access Control)以及审核(Auditing)。而传输安全又包括两个方面:认证(Authentication)和消息保护(Message Protection)。认证帮助客户端或者服务确认对方的真实身份,而消息保护则通过签名和加密实现消息的一致性和机密性。WCF采用两种不同的机制来解决这三个涉及到传输安全的问题,我们一般将它们称为不同的安全模式,即Transport安全模式和Message安全模式。 这篇博文详细介绍了Transport ,Message 以及他们两种混合的Mixed模式,有兴趣的童鞋可以看看。
而我今天的任务就是要仔细研究下 在Transport模式和Message模式下的具体应用的异同,以便来实现上文所说的传输安全。 对于服务器,如果我们做传输安全的功能需要添加Binding的安全性设置和设置具体的服务器认证方式。如下,在配置文件中的设置:
<behavior name="metadataBehavior">
<serviceCredentials>
<userNameAuthentication
userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="WCFTestService.CustomValidator, WCFTestService"/>
</serviceCredentials>
</behavior>
<binding name="basicHttpBinding" receiveTimeout="00:10:00">