winsystem

  |  手机版

收藏网站

投稿QQ:1745232315

IT专家网,汇聚专业声音 解析IT潮流 IT专家网,汇聚专业声音 解析IT潮流

网络

专家视点在现场环球瞭望
IT专家网 > winsystem

解析用Visual Studio 2010实现wcf服务的保护

作者:丁丁出处:IT专家网2010-09-01 08:40

  虽然客户/服务间的通信已经能够正常工作,而且服务返回的结果也和我们想象的一样,但服务是不安全的。在布署服务时,安全性是一个主要的考虑因素,而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菜单项。

  (5)用下面的XML代码替换web.config文件中的内容。

以下是代码片段:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>

<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging" switchValue="Verbose">
<listeners>
<add name="xml”
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="C:\logs\message.log" />
</listeners>
</source>
</sources>
<trace autoflush="true" />
</system.diagnostics>

<system.serviceModel>

<diagnostics>
<messageLogging logEntireMessage="true"
maxMessagesToLog="300"
logMessagesAtServiceLevel="false"
logMalformedMessages="true"
logMessagesAtTransportLevel="true" />
</diagnostics>

<services>
<service name="DerivativesCalculatorService.Calculator">
<endpoint address=""
binding="basicHttpBinding"
contract="DerivativesCalculatorService.IDerivativesCalculator"/>
</service>
</services>
</system.serviceModel>
</configuration>

  上面的配置告诉WCF把服务的通信以XML格式保存在c:\logs\message.log文件中。

  产生日志文件

  (6)选择Build | Build Solution菜单项。

  (7)在Solution Explorer中右键单击Client项目并选择Debug | Start new instance菜单项。

  (8)在刚打开的Client.EXE命令行窗口中按Enter键。我们会看到客户程序从运行在IIS中的Derivatives Calculator服务获得了一个衍生产品的估计价格。

  (9)在Client.EXE命令行窗口中按Enter键来关闭客户程序

  (10)选择Start | Run菜单项,输入Notepad并按Enter键。

  (11)在Notepad中选择File | Open菜单项。

  (12)找到C:\Logs\message.log并单击Open按钮。

  (13)选择Edit | Find菜单项,在Find what文本框中输入“MSFT”并单击Find Next按钮。

  我们能够找到这个字符串,因为这是客户程序发给服务的消息中用到的股票代号。这证明了与客户程序与服务间的通信是未经加密的。

  (14)单击Cancel按钮来关闭Find对话框。

  (15)选择File | Exit菜单项来关闭Notepad。

  2.对服务进行保护

  只要简单地配置一下服务的绑定,就可以对服务进行保护。

相关文章

关键词:Visual Studio 2010,Visual Studio,服务,微软技术,环球瞭望

责任编辑:valen

专题推荐

原创文章

微博互动

白皮书

网警备案