一、课程介绍
直接开门见山吧,在学习之前阿笨想问大家一句,关于WebService远程过程调用技术(RPC) 你真的会了吗?不要跟老夫扯什么WebService技术已经过时,如果你的内心有在偷偷告诉你其实我是真的不会WebService的话,那么恭喜你,因为你在这茫茫的IT编程世界里找到了这本《C#远程调用技术WebService葵花宝典》!曾经有一位不知名的讲师说过这么一句名言: 一门RPC技术不会,那么千万万门RPC技术将都不会!
本次阿笨的分享课包含以下知识点。
1、C# WebService常用的几种调用方式。
2、WebService如何使用异步调用。(基于异步委托BeginInvoke/EndInvoke、基于委托事件机制、基于Async Task异步编程模式)
3、C# WebService如何保证客户端以安全的方式进行访问。
4、C#通过反射(Reflection)动态创建WebService实例。
5、微软的轻量级的IOC框架Unity的基本使用。
在此插播一条硬广告:下一堂分享课程阿笨计划将给大家带来《C#面向服务编程技术WCF从入门到实战演练》。
如果您对本次分享课感兴趣的话,那么请跟着阿笨一起学习吧。废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。
二、C# WebService两种不同引用使用方式
2.1、Web References方式引用。
2.2、Service References方式引用。
三、C# WebService如何使用异步调用
3.1、基于异步委托BeginInvoke/EndInvoke。
3.2、基于委托事件的Event机制。
3.3、基于Async Task 异步编程模型。
四、C# WebService如何保证客户端以安全的方式进行访问
4.1、先说话一下何为安全?我们需要解决什么问题?
调用安全:由于WebService是暴露在公网中,怎么防止非法用户调用我们的服务呢?因此我们需要解决:授权问题。
数据传输安全:由于我们的数据都是通过密文在网络上进行传输很容易被窃取到。因此我们需要解决:数据被窃取问题。
以上解释仅仅是阿笨狭义的理解;网络安全还包括很多方面,会话劫持、会话被篡改等等。
4.2、阿笨分享一下目前的几种常用的解决方案。
1、WebService每一个方法都需要传递一个Token固定的参数,不同的调用者各自的Token值不一样。服务端有一套规则算法生成Token值,将这个值持久化在关系数据库或者文件以及内存数据库中。
2、WebService采用asp.net的认证机制。常见的认证方式有:FORM身份验证、集成WINDOWS验证、Basic基础认证、 Digest摘要认证、
3、WebService采用SSL实现加密传输。
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer)安全传输协议。(强烈推荐)
4、通过WebService给我们提供的SoapHeader来实现用户身份验证。(强烈推荐)
阿笨将实战环节给大家分享一种优雅的方式进行针对WebService身份验证。
5、以上几种解决方案进行组合使用。(个人推荐使用:③+④两个方案进行组合使用)(强烈推荐)
总结:我们可以通过SoapHeader来保证WebService的授权使用;可以通过SSL来保证数据的加密,防止网络侦听!
五、C# WebService如何采用SoapHeader进行身份验证
![](http://upload-images.jianshu.io/upload_images/1676984-cb863a61f7cc4f85.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
六、C# WebService如何通过优雅的方式进行统一入口调用
6.1、Unity容器方式获取WebService服务实例。
6.2、Reflect反射方式获取WebService服务实例(推荐使用)。