WCF服务端安全实现技巧剖析

WCF作为一款功能强大的开发工具给我们带来了非常不一样的使用体验。它的安全性方面是非常重要的。在这里我们将会为大家详细介绍一下WCF服务端安全的相关应用知识,方便大家理解这方面的内容。

创新互联网站建设提供从项目策划、软件开发,软件安全维护、网站优化(SEO)、网站分析、效果评估等整套的建站服务,主营业务为成都网站建设、成都网站制作APP应用开发以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。创新互联深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

先来看一个最简单的加法运算通过WCF来实现。 

 
 
 
  1. namespace Contract  
  2. {  
  3. [ServiceContract]  
  4. public interface IService  
  5. {  
  6. [OperationContract]  
  7. int add(int a, int b);  
  8. }  
  9. }  
  10. public class Service:Contract.IService  
  11. {  
  12. IService 成员#region IService 成员  
  13. public int add(int a, int b)  
  14. {  
  15. return a + b;  
  16. }  
  17. #endregion  

WCF服务端安全的配置文件如下:

 
 
 
  1. < system.serviceModel> 
  2. < behaviors> 
  3. < serviceBehaviors> 
  4. < behavior name="ServiceBehavior"> 
  5. < serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" /> 
  6. < /serviceBehaviors> 
  7. < /behaviors> 
  8. < services> 
  9. < service behaviorConfiguration="ServiceBehavior" 
    name="Service.Service"> 
  10. < endpoint binding="wsHttpBinding" contract="Contract.IService" /> 
  11. < host> 
  12. < baseAddresses> 
  13. < add baseAddress="http://localhost:123/service" /> 
  14. < /baseAddresses> 
  15. < /host> 
  16. < /service> 
  17. < /services> 
  18. < /system.serviceModel> 

OK,至此我们已经建立了一个WCF的加法运算。下一步我将讲解如何为建立好的应用程序加入安全机制。我们可以通过在服务器端配置证书来加密和解密传输数据来保证数据的完整性和机密性。我们来为服务器配置证书。由于我在这里只做Demo演示,证书可以通过markcert.exe命令来完成,如果作为企业应用的话,请到CA申请受信任的证书。证书的介绍和制作方法在我以前写过的Blogs上可以看到。在WCF中可以通过将上述步骤中生成的证书以配置文件的方式添加到WCF的配置文件中,就可以实现WCF服务端安全,以及数据在传输中的加密和解密了。服务器端配置文件添加如下内容

 
 
 
  1. < serviceCredentials> 
  2. < clientCertificate> 
  3. < authentication certificateValidationMode="None" /> 
  4. < /clientCertificate> 
  5. < serviceCertificate findValue="Guotai.WeighingSystem.ServerCA" 
    storeLocation="CurrentUser" x509FindType="FindBySubjectName" /> 
  6. < /serviceCredentials> 

同样在客户端添加以下节点:

 
 
 
  1. < endpointBehaviors> 
  2. < behavior name="NewBehavior"> 
  3. < clientCredentials> 
  4. < serviceCertificate> 
  5. < authentication certificateValidationMode="None" /> 
  6. < /serviceCertificate> 
  7. < /clientCredentials> 
  8. < /behavior> 
  9. < /endpointBehaviors> 

请注意serviceCertificate节点,由于我们建立的证书只是用来测试用,不受信任的,因此将证书验证模式设为:None,否则程序运行时报错。OK,现在我们已经实现了数据完整性和数据机密性。有兴趣的朋友,可以用Service Trace Viewer这个工具来将WCF在数据传输中所记录的日志文件打开,如果WCF服务端安全配置了以上的安全措施,那么在这个工具中可以看到WCF传输过程中的数据都是以密文的方式传输的。

【编辑推荐】

  1. WCF ABC实质内容介绍
  2. WCF Message类应用基础讲解
  3. WCF自定义过滤器相关实现方法简介
  4. WCF物理地址如何进行正确设定
  5. 两种WCF地址详细对比

新闻标题:WCF服务端安全实现技巧剖析
文章路径:http://www.shufengxianlan.com/qtweb/news5/395905.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联