自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

WCF服務(wù)端安全實(shí)現(xiàn)技巧剖析

開(kāi)發(fā) 開(kāi)發(fā)工具
我們?cè)谶@篇文章中將會(huì)為大家詳細(xì)介紹一下WCF服務(wù)端安全的相關(guān)實(shí)現(xiàn)方法。主要是通過(guò)一段代碼的解讀來(lái)為大家剖析其中應(yīng)用技巧。

WCF作為一款功能強(qiáng)大的開(kāi)發(fā)工具給我們帶來(lái)了非常不一樣的使用體驗(yàn)。它的安全性方面是非常重要的。在這里我們將會(huì)為大家詳細(xì)介紹一下WCF服務(wù)端安全的相關(guān)應(yīng)用知識(shí),方便大家理解這方面的內(nèi)容。

先來(lái)看一個(gè)最簡(jiǎn)單的加法運(yùn)算通過(guò)WCF來(lái)實(shí)現(xiàn)?!?/p>

  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服務(wù)端安全的配置文件如下:

  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,至此我們已經(jīng)建立了一個(gè)WCF的加法運(yùn)算。下一步我將講解如何為建立好的應(yīng)用程序加入安全機(jī)制。我們可以通過(guò)在服務(wù)器端配置證書來(lái)加密和解密傳輸數(shù)據(jù)來(lái)保證數(shù)據(jù)的完整性和機(jī)密性。我們來(lái)為服務(wù)器配置證書。由于我在這里只做Demo演示,證書可以通過(guò)markcert.exe命令來(lái)完成,如果作為企業(yè)應(yīng)用的話,請(qǐng)到CA申請(qǐng)受信任的證書。證書的介紹和制作方法在我以前寫過(guò)的Blogs上可以看到。在WCF中可以通過(guò)將上述步驟中生成的證書以配置文件的方式添加到WCF的配置文件中,就可以實(shí)現(xiàn)WCF服務(wù)端安全,以及數(shù)據(jù)在傳輸中的加密和解密了。服務(wù)器端配置文件添加如下內(nèi)容

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

同樣在客戶端添加以下節(jié)點(diǎn):

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

請(qǐng)注意serviceCertificate節(jié)點(diǎn),由于我們建立的證書只是用來(lái)測(cè)試用,不受信任的,因此將證書驗(yàn)證模式設(shè)為:None,否則程序運(yùn)行時(shí)報(bào)錯(cuò)。OK,現(xiàn)在我們已經(jīng)實(shí)現(xiàn)了數(shù)據(jù)完整性和數(shù)據(jù)機(jī)密性。有興趣的朋友,可以用Service Trace Viewer這個(gè)工具來(lái)將WCF在數(shù)據(jù)傳輸中所記錄的日志文件打開(kāi),如果WCF服務(wù)端安全配置了以上的安全措施,那么在這個(gè)工具中可以看到WCF傳輸過(guò)程中的數(shù)據(jù)都是以密文的方式傳輸?shù)摹?/p>

【編輯推薦】

  1. WCF ABC實(shí)質(zhì)內(nèi)容介紹
  2. WCF Message類應(yīng)用基礎(chǔ)講解
  3. WCF自定義過(guò)濾器相關(guān)實(shí)現(xiàn)方法簡(jiǎn)介
  4. WCF物理地址如何進(jìn)行正確設(shè)定
  5. 兩種WCF地址詳細(xì)對(duì)比
責(zé)任編輯:曹凱 來(lái)源: 博客園
相關(guān)推薦

2011-09-09 09:44:23

WCF

2009-12-07 17:28:55

WCF數(shù)據(jù)

2010-02-22 16:26:47

WCF傳輸數(shù)據(jù)

2009-11-05 15:25:36

WCF服務(wù)端配置

2009-11-09 13:31:09

WCF服務(wù)端配置

2016-08-04 14:41:21

架構(gòu)java服務(wù)端開(kāi)發(fā)

2010-02-25 13:40:17

WCF禁用安全配置

2010-02-24 12:49:39

WCF枚舉

2012-04-20 10:05:16

WCF

2009-11-05 13:00:25

WCF客戶端

2016-03-18 09:04:42

swift服務(wù)端

2024-11-21 15:48:50

2010-02-24 16:17:09

WCF獲取客戶端IP

2020-04-27 08:07:16

APP服務(wù)端通信安全數(shù)據(jù)安全

2009-08-21 15:36:41

服務(wù)端與客戶端

2009-08-21 15:54:40

服務(wù)端與客戶端

2009-12-21 10:09:26

WCF創(chuàng)建客戶端服務(wù)對(duì)

2009-12-21 15:53:56

WCF獲取客戶端IP

2010-05-28 10:10:49

2010-02-24 11:22:04

WCF方法重載
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)