一、课程介绍

直接开门见山吧,在学习之前阿笨想问大家一句,关于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进行身份验证

WebService身份验证

六、C# WebService如何通过优雅的方式进行统一入口调用

6.1、Unity容器方式获取WebService服务实例。

6.2、Reflect反射方式获取WebService服务实例(推荐使用)。

C#远程调用技术WebService葵花宝典的更多相关文章

  1. C#远程调用技术WebService修炼手册

    一.课程介绍 一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上.所以在本次分享课开课之 ...

  2. WebService远程调用技术

    1.---------------------------------介绍-------------------------------------------------- (1)远程调用:一个系统 ...

  3. Spring远程调用技术<2>-Hessian和Burlap

    上篇谈到RMI技术,加上Spring的封装,用起来很方便,但也有一些限制 这里的Hessian和Burlap解决了上篇提到的限制,因为他们是基于http的轻量级远程服务. Hessian,和RMI一样 ...

  4. Spring远程调用技术<1>-RMI

    在java中,我们有多种可以使用的远程调用技术 1.远程方法调用(remote method invocation, RMI)  适用场景:不考虑网络限制时(例如防火墙),访问/发布基于java的服务 ...

  5. Java[2] 分布式服务架构之java远程调用技术浅析(转http://www.uml.org.cn/zjjs/201208011.asp)

    转自:http://www.uml.org.cn/zjjs/201208011.asp 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如: ...

  6. Spring远程调用技术<3>-Spring的HTTP Invoker

    前面提到RMI使用java标准的对象序列化机制,但是很难穿透防火墙.  另一方面,Hessian和Burlap能很好地穿透防火墙,但是使用私有的对象序列化机制. Spring提供的http invke ...

  7. WebService与RMI(远程调用方式实现系统间通信)

    前言 本文是<分布式java应用基础与实践>读书笔记:另外参考了此博客,感觉讲的挺好的,尤其是其中如下内容: 另外,消息方式实现系统间通信本文不涉及.RMI则只采用spring RMI框架 ...

  8. 架构设计:一种远程调用服务的设计构思(zookeeper的一种应用实践)

    在深入学习zookeeper我想先给大家介绍一个和zookeeper相关的应用实例,我把这个实例命名为远程调用服务.通过对这种应用实例的描述,我们会对zookeeper应用场景会有深入的了解. 远程调 ...

  9. 跨平台调用之WebService

    一.简介 web service是一种跨编程语言和跨操作系统平台的远程调用技术,是基于网络的.分布式的模块化组件. 跨编程语言就是说服务器端程序采用 Java 编写,客户端程序则可以采用其他编程语言编 ...

随机推荐

  1. decimal模块

    简介 decimal意思为十进制,这个模块提供了十进制浮点运算支持. 常用方法 1.可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确. 2.要从浮点数据转换为De ...

  2. linux usb枚举过程分析之守护进程及其唤醒【转】

    转自:http://blog.csdn.net/xuelin273/article/details/38646765 usb热插拔,即usb设备可以实现即插即用,像U盘一样,插到电脑里就可以用,不用时 ...

  3. Ansible Tower系列 二(安装 Tower)【转】

    文档:http://docs.ansible.com/ansible-tower/ 安装前检查 python版本为2.6 保持网络畅通 内存预留充足 安装用户为root 软件下载 下载地址:http: ...

  4. Flask源码解析:Flask上下文

    一.上下文(Context) 什么是上下文: 每一段程序都有很多外部变量.只有像Add这种简单的函数才是没有外部变量的.一旦你的一段程序有了外部变量,这段程序就不完整,不能独立运行.你为了使他们运行, ...

  5. Python的CGI编程实现-通过接口运行服务器py脚本

    yum 安装apcche [apache]yum 安装Apache(Centos 6.9) https://www.cnblogs.com/lauren1003/p/5993654.html只需一行命 ...

  6. GET和POST两种基本请求方法的区别(转载)

    get与post请求的区别: 通常回答: GET在浏览器回退时是无害的,而POST会再次提交请求. GET产生的URL地址可以被Bookmark,而POST不可以. GET请求会被浏览器主动cache ...

  7. ps不显示命令本身的进程号

    当我们查看某个服务的进程时候,它会把命令本身的进程显示出来.如下图: 进程号2383 就是我命令本身的进程号,和我实际想看的进程无关 特别是在我们写脚本,kill进程时候会报错: 解决办法可以优化脚本 ...

  8. 7-9The Morning after Halloween uva1601

    这题可以用普通bfs来做  也可以用双向bfs来做(先欠着) 有点类似专题训练的一题   不过那题是找钥匙开门   不过都用了状态压缩 题意:  n,m(<=16) 的网络上有t(<=3) ...

  9. forEach的坑

    使用js里的forEach来遍历数组的时候需要注意的是:break,return语句不能使其中断,它还是会继续遍历完数组的每一个元素 错误代码: function nameExit(name){ da ...

  10. java反射bean to bean

    /** * Copyright © 2018 fwz Info. Tech Ltd. All rights reserved. * * @Package: com.sm.utils * @author ...