軟件首頁 |  文章首頁
最新更新 軟件分類 設為首頁 加入收藏 聯(lián)系我們
當前位置:首頁文章首頁 IT學院 VC(VC++)

如何在WCF中用TcpTrace工具查看發(fā)送和接收的SOAP消息

作者:東坡下載  來源:uzzf  發(fā)布時間:2010-10-14 9:36:06  點擊:

      WCF對消息加密(只對消息加密,不考慮Authorize)其實很簡單,只要在server和client端的binding加入security mode為Message(還有Transport, TransportWithMessageCredential,關于他們的不同之處,請參考MSDN)即可。

      以一個簡單的例子說明,這個例子只有一個Greeting方法,回顯客戶端的輸入,如客戶端輸入"WCF",調用service的Greeting方法后回顯"Hello,WCF!"。我這里server端的配置文件如下:

 Client端沒有使用配置文件,直接在代碼中編寫,但要與server端一致:

var binding = new WSHttpBinding();
binding.Security.Mode
= SecurityMode.Message;

      當我們對消息加密后,如果想查看一下是否真的加密,就要用到一個工具TcpTrace,這是一個可以跟蹤SOAP消息的很好用的工具。也可以應用于web service的消息查看,因為都是SOAP消息格式。這個工具的官方網(wǎng)站下載地址:http://www.tcptrace.org/download.html。不需要安裝,下載后直接運行。

      這個工具的原理就是開一個偵聽端口,用于偵聽Client端發(fā)送的數(shù)據(jù),當Client發(fā)出一個Soap消息后,先把Soap攔截下來,進行Soap跟蹤處理(如顯示Soap消息,或記入log等)之后再把Soap消息傳到真正的Service。所以我們需要配置兩個port,一個是偵聽端口,一個是目標端口,也就是service端口。如下圖:

 點擊OK就進入工作狀態(tài)了。

     但是為了能讓TcpTrace偵聽到Client端發(fā)出的消息,我們要在Client端做些工作,需要一個特殊的Client端的Endpoint Behavior:ClientViaBehavior。假設tcpTrace進行偵聽的Port為8081, 那么Client實現(xiàn)了ClientViaBehavior的代碼如下,當然也可以在配置文件中直接添加。

var binding = new WSHttpBinding();
binding.Security.Mode
=
SecurityMode.Message;

//Encrypt, can check with Tcp Trace

binding.Security.Mode = SecurityMode.Message;
//
Not encrypt
//binding.Security.Mode = SecurityMode.None;


var factory
= new ChannelFactory<IHelloService>(
    binding,
new EndpointAddress("http://localhost:8080/HelloService"
));

//Add listening port only at client.

Uri tcpTraceUri = new Uri("http://localhost:8081/HelloService");
factory.Endpoint.Behaviors.Add(
new
ClientViaBehavior(tcpTraceUri));

var proxy
=
factory.CreateChannel();
var result
= proxy.Greeting("WCF Message");

 注意代碼中的8081端口,作為behavior加入到endpoint中。這個behavior只在Client端的endpoint中加,server端不需要。

 然后就可以啟動TcpTrace了,界面如下:

 我們先來看一下TcpTrace跟蹤的不加密的Soap消息,即Client端的binding SecurityMode為None的情況:

 可見消息是明碼的。我們再來看一下加密后的情況,即Client端的binding SecurityMode為Message的情況:

 可見消息都是加密過的,從而保證了消息的安全性。當然還可以加入用戶認證,交換證書等安全性機制,這個例子只是說明如何使用TcpTrace來跟蹤Soap消息,所以只做了加密部分。

相關軟件

文章評論

本類推薦文章

關于本站 | 網(wǎng)站幫助 | 廣告合作 | 下載聲明 | 友情連接 | 網(wǎng)站地圖
Copyright © 20098-2010 uzzf下載站. All Rights Reserved .