WCF开发工具可以帮助我们轻松的打造一个企业级的互联解决方案。其在安全方面优势也是比较突出的。我们今天就为大家详细介绍一下保护WCF服务的相关方法。其实,只要简单地配置一下服务的绑定,就可以对服务进行保护。#t#
wsHttpBinding
WSHttpBinding与BasicHttpBinding相似,但它提供了更多与Web服务有关的特性。它使用HTTP传输协议,并提供了消息层级的加密,这些和BasicHttpBinding一样。但它还支持事务处理、可靠消息、WS-Addressing等特性,这些特性要么默认情况下就已经启用,要么通过一个设定就可以启用。
保护WCF服务操作步骤之配置服务
(1)回到Visual Studio,打开Web.config,准备编辑。
(2)将终结点的绑定属性从basicHttpBinding改为wsHttpBinding,如下面加亮的代码所示。
< ?xml version="1.0" encoding="utf-8" ?>
< configuration>
. . .
< system.serviceModel>
. . .
< services>
< service name="DerivativesCalculatorService.Calculator">
< endpoint address=""
binding="wsHttpBinding"
contract="DerivativesCalculatorService.IDerivativesCalculator"/>
< /service>
< /services>
< /system.serviceModel>
< /configuration>
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
保护WCF服务操作步骤之配置客户程序
(3)在Client项目中打开app.config文件,准备编辑。
(4)删除endpoint的bindingConfiguration attribute。
(5)将终结点的绑定从basicHttpBinding改为wsHttpBinding。
(6)需要改动的地方如下面加亮的代码所示:
< ?xml version="1.0" encoding="utf-8"?>
< configuration>
< system.serviceModel>
< bindings>
. . .
< /bindings>
< client>
< !-- remove bindingConfiguration attribute -->
< endpoint
address="http://localhost/DerivativesCalculatorService/Service.svc"
binding="wsHttpBinding"
contract="IDerivativesCalculator"
name="DerivativesCalculatorConfiguration" />
< /client>
< /system.serviceModel>
< /configuration>
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
保护WCF服务操作步骤之运行使用了安全绑定的服务和客户程序
(7)选择Build | Build Solution菜单项。
(8)在Solution Explorer中右键单击Client项目并选择Debug | Start new instance菜单项。
(9)在刚打开的Client.EXE命令行窗口中按Enter键。
(10)客户程序从运行在IIS中的Derivatives Calculator服务获得了一个衍生产品的估计价格。
(11)在Client.EXE命令行窗口中按Enter键来关闭客户程序。
保护WCF服务操作步骤之检查日志文件
除了用notepad来查看message.log文件,我们还可以使用Microsoft Service Trace Viewer,它是专门设计用来查看、检索、过滤和分析WCF跟踪文件的。
(12)选择Start | All Programs | Microsoft Windows SDK v6.0A | Tools | Svc Trace Viewer菜单项。
(13)选择File | Open菜单项并将当前目录切换到C:\logs文件夹。
(14)在File name文本框中输入message.log并单击Open按钮。
(15)选择Message选项卡。
(16)在Message选项卡中的消息列表中,选择倒数第二条消息。
在Service Trace Viewer中选择倒数第二条消息
(17)在右下方切换到Message视图。
(18)查找字符串MSFT。
这一次我们无法找到该字符串。服务现在已经经过配置,它会对接收和发送的消息进行加密,从而保证消息的内容是保密的。到这里就完成了保护WCF服务的操作。