- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 Web服务 (下) 课程目标 SOAP技术 同步及异步调用Web Services 事务管理 Web Services的安全性 SOAP技术 SOAP 的结构 SOAP消息的一般格式 定义和处理SOAP 头条目 同步及异步调用编程 采用异步Web方法 Web方法聚合数据 实现异步Web服务方法 实现异步Web服务方法示例 实现一个产生异步的方法调用的XML Web服务客户端 事务处理在Web服务中的使用 参与使用ASP.NET创建的Web服务中的事务 安全性和Web Services 使用SSL进行加密和签名 身份验证 使用SOAP标头自定义身份验证和授权 实践项目——使用简单的数学服务 程序的实现要求如下: (1)做一个简单的数学计算服务页面,实现简单的加、减、乘、除操作。 (2)做一个Web窗体作为该Web服务的客户端,调用该Web服务进行测试。 课程总结 SOAP技术 同步及异步调用Web Services 事务管理 Web Services的安全性 * * 简单对象访问协议(SOAP) SOAP提供了一种操作系统下运行的程序,与在同一种或另一种操作系统下运行的程序进行通信的方法。它们利用HTTP和XML语言作为信息交换的机制。 SOAP是Web服务交换消息的标准协议。SOAP利用XML来封装信息。对于Web服务来说,SOAP通过XML格式的信息传递参数,进行Web调用。 SOAP的优点是程序调用更有可能通过防火墙服务器得到,该服务器(通过指定的端口机制)可以滤掉对已知应用程序调用以外的请求。由于HTTP请求一般是通过防火墙实现的,所以利用SOAP进行通信的程序能得到保证,它们能与任何地方的程序进行通信。 无论是传递数据还是执行远程方法调用,SOAP 必须有一个统一的格式。SOAP首先必须具有XML 格式,并且由Schema大纲定义其所包含的标记。总体上看,SOAP 消息主要包括以下3个主要元素: SOAPEnvelope :它是整个SOAP 消息的根元素,也是每个SOAP 消息中必须有的元素,其它元素都在这个元素内部。 SOAPHeader:Header元素是 SOAP消息中的可选元素,但如果有,必须是Envelope的第一个直接子元素。Header元素中可以包括多个头条目子元素。 SOAPBody:这是每个SOAP消息中都必须有的元素,而且是Envelope元素的直接子元素。如果Envelope消息中没有Header元素,那这个元素必须是Envelope元素的第一个子元素,否则它必须紧接着Header元素。 ?xml version=1.0 encoding=utf-8? soap:Envelope xmlns:soap=/soap/envelope/ soap:Header MyHeader xmlns= UsernameAdmin/Username PasswordMyPassword/Password /MyHeader /soap:Header soap:Body MyWebMethod xmlns= / /soap:Body /soap:Envelope 通过IE5 以上版本的浏览器打开该文件,SOAP 是一个标准的XML 文件,显示成XML 默认的树状结构,如下图所示: 定义SOAP头条目: 创建一个继承SoapHeader的类,作为头条目内容的元素应该声明为公开的成员方法。如下: public class AuthHeaderCS : SoapHeader { public string Username; public string Password; } 定义SOAP头条目类,可以在Web服务中使用。使用SOAP头条目分为如下三步: 在Web服务类中声明一个代表SOAP头条目类的变量。 在每个Web服务方法上应用SoapHeader特性。 在每个应用了SoapHeader特性的Web服务方法中定义访问变量中成员。 %@ WebService Language=C# Class=SoapHeadersCS.HeaderService % using System; using System.Web.Services; using System.Web.Services.Protocols; namespace SoapHeadersCS { public class AuthHeaderCS : SoapHeader { public string Username; public string Password; } publi
文档评论(0)