WCF一步一步往前爬(四)
来源:互联网 发布:linux tar exclude 编辑:程序博客网 时间:2024/05/22 10:44
第四步:
WCF安全问题探讨。以及如何使用“服务跟踪查询器”工具。
WCF程序有更多的安全问题,因为消息需要跨越机器边界传递,对消息进行加密是一方面,带签名是另一种方式。通常WCF包括传输通道和消息级别的安全性。如https就是具有更高安全性的传输专用通道,消息级别包括加密和解密等。
一、消息级别的TCP服务保护
示例:NetTcpBinding绑定的消息加密。宿主程序和客户端的配置文件中分别增加
<netTcpBinding>
<binding name="ProductsClientTcpBindingConfig">
<security mode="Message">
<message algorithmSuite="Basic128" />
</security>
</binding>
</netTcpBinding>
然后修改binding=netTcpBinding的endpoint指定bindingConfiguration属性=tcpBindingConfig,这样这种绑定的消息会自动进行加密和解密。这样可以通过service trace viewer工具查看D:\project\LS.PRJ2011\ProductsServiceHost\ProductsService.svclog(这个地址在你本机可能需要修改)这个文件来观察消息是否真正的被加密了。
基本BasicHttpBinding绑定的消息加密需要证书,比较麻烦,但WSHttpBinding绑定的消息加密默认就会有消息加密功能,所以只要提供一个WSHttpBinding的endpoint就OK。
二、在传输通道级别保护一个HTTP服务
我提到过,传输通道的保护可以配置为https来增强保护,由于启用https需要证书文件,比较麻烦。暂时不演示了,后面有时间再补充吧。
三、认证与授权
认证和授权是基本form验证的一种有效方式,也是在web程序中用的最多的一种验证方式。WCF对认证和授权有了很好的支持,这个主题也很广泛,这里只是简单演示服务器端怎么样拿到客户端的windows用户名。
面来实践一下Microsoft Service Trace Viewer这个WCF工具是如何耍的(下面的项目都是基于在前面的实例)
打开ProductsServiceHost项目,右键app.config->编辑WCF配置->诊断->消息日志记录。把LogEntireMessage,LogMessagesAtServiceLevel,LogMessagesAtTransportLevel属性设为True。
诊断->源->新建源。名称:System.ServiceModel.MessageLogging;级别:Verbose。
诊断->侦听器->新建侦听器。InitData:D:\project\LS.PRJ2011\ProductsServiceHost\ProductsService.svclog;Name:MessageLog;源:(添加)System.ServiceModel.MessageLogging。
ok,使用Microsoft Service Trace Viewer的前提配置就搞定。把文件D:\project\LS.PRJ2011\ProductsServiceHost\ProductsService.svclog打开就可以跟踪消息。
在这里,我是想一探消息级别的加密机制是怎么个回事。那么还得做些设置。
绑定->新建绑定配置。Name:ProductsServiceTcpBindingConfig;->安全性。Mode:Message;AlgorithmSuite:Basic128;MessageClientCredentialType:Windows并且将bindingConfiguration="ProductsServiceTcpBindingConfig"
对于客户端项目ProductsClient,新建绑定ProductsClientTcpBindingConfig,其他配置与服务端一样。
- WCF一步一步往前爬(四)
- WCF一步一步往前爬(一)
- WCF一步一步往前爬(二)
- WCF一步一步往前爬(三)
- WCF一步一步往前爬(五)
- WCF一步一步往前爬(六)
- 一步一步往前爬
- WCF 一步一步 发布 WCF服务 到 IIS (图)
- WCF 一步一步 发布 WCF服务 到 IIS (图)
- 一步一步学习hadoop(四)
- 一步一步建WCF程序
- 慢慢往前爬^_^
- WCF学习总结(四)
- WPF+WCF一步一步打造音频聊天室(一):概述
- WPF+WCF一步一步打造音频聊天室(三):语音聊天
- Swift即将开源,我必须要一步一步往前走
- WCF 一步一步 发布 WCF服务 到 IIS
- (四)、一步一步学GTK+之多窗口
- lua 元表
- 学习C#的基础感想
- How Tomcat Works学习笔记<四>
- Linux下regulator驱动程序分析
- (2011.08.27)优先队列
- WCF一步一步往前爬(四)
- V880刷机方法
- Jsp/Servlet读书笔记(二) -- HttpServletRequest和HttpServletResponse
- 深度解析Oracle ERP系统模块
- hdu 1698 Just a Hook(成段更新)
- SICP Exercise 4.4
- Hadoop namenode 不能启动解决方案
- iPhone开发经典语录集锦
- oracle 表中的rowid是什么意思