现在客户端跟服务端,无非就是客户端发生一条指令,然后服务端进行处理分析返回一个我们想要的答案。客户端跟服务端之间的通信看似没什么异常,其实它里
面存在着风险,所有我们在部署服务器时一定要考虑到安全问题,现在wcf使得能够更容易有效的保护服务的运行。
我们先要证明与Derivatives Calculator服务之间的通信没有经过加密。我们然后会对服务使用的绑定进行修改,从而让我们与服务之间的通信是保密的。
1.查看未经保护的服务消息
(1)打开一个命令行窗口。
具体步骤:选择Start | Run菜单项,然后输入CMD并按Enter键。
(2)在命令行窗口中,输入“md c:\logs”并按Enter键。
这会在C:盘中创建一个名为logs的目录。
(3)输入Exit并按Enter键来关闭命令行窗口。
(4)回到Visual Studio,在Solution Explorer的DerivativesCalculatorService项目中,右键单击Web.config文件并选择Open菜单项。
2.产生日志文件
(1)选择Build | Build Solution菜单项。
(2)在Solution Explorer中右键单击Client项目并选择Debug | Start new instance菜单项。
(3)在刚打开的Client.EXE命令行窗口中按Enter键。我们会看到客户程序从运行在IIS中的Derivatives Calculator服务获得了一个衍生产品的估计价格。
(4)在Client.EXE命令行窗口中按Enter键来关闭客户程序
(5)选择Start | Run菜单项,输入Notepad并按Enter键。
(6)在Notepad中选择File | Open菜单项。
(7)找到C:\Logs\message.log并单击Open按钮。
(8)选择Edit | Find菜单项,在Find what文本框中输入“MSFT”并单击Find Next按钮。
我们能够找到这个字符串,因为这是客户程序发给服务的消息中用到的股票代号。这证明了与客户程序与服务间的通信是未经加密的。
(9)单击Cancel按钮来关闭Find对话框。
(10)选择File | Exit菜单项来关闭Notepad。
3.对服务进行保护
只要简单地配置一下服务的绑定,就可以对服务进行保护。
4.wsHttpBinding
WSHttpBinding与BasicHttpBinding相似,但它提供了更多与Web服务有关的特性。它使用HTTP传输协议,并提供了消息层级的加密,这些和BasicHttpBinding一样。但它还
支持事务处理、可靠消息、WS-Addressing等特性,这些特性要么默认情况下就已经启用,要么通过一个设定就可以启用。
5.配置服务
(1)回到Visual Studio,打开Web.config,准备编辑。
(2)将终结点的绑定属性从basicHttpBinding改为wsHttpBinding。
6.配置客户程序
(1)在Client项目中打开app.config文件,准备编辑。
(2)删除endpoint的bindingConfiguration attribute。
(3)将终结点的绑定从basicHttpBinding改为wsHttpBinding。
(4)选择Build | Build Solution菜单项。
(5)在Solution Explorer中右键单击Client项目并选择Debug | Start new instance菜单项。
(6)在刚打开的Client.EXE命令行窗口中按Enter键。
(7)客户程序从运行在IIS中的Derivatives Calculator服务获得了一个衍生产品的估计价格。
(8)在Client.EXE命令行窗口中按Enter键来关闭客户程序。
7.检查日志文件
除了用notepad来查看message.log文件,我们还可以使用Microsoft Service Trace Viewer,它是专门设计用来查看、检索、过滤和分析WCF跟踪 文件的。
(1)选择Start | All Programs | Microsoft Windows SDK v6.0A | Tools | Svc Trace Viewer菜单项。
(2)选择File | Open菜单项并将当前目录切换到C:\logs文件夹。
(3)在File name文本框中输入message.log并单击Open按钮。
(4)选择Message选项卡。
(5)在Message选项卡中的消息列表中,选择倒数第二条消息
(6)在右下方切换到Message视图。
(7)查找字符串MSFT。
这一次我们无法找到该字符串。
服务现在已经经过配置,它会对接收和发送的消息进行加密,从而保证消息的内容是保密的。
欢迎访问微软官网下载相关软件http://www.microsoft.com/zh/cn/default.aspx
出处:蓝色理想
责任编辑:bluehearts
◎进入论坛网络编程版块参加讨论
|