




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XXXX .Net服务开发指南版本:V1.0中国石油塔里木油田公司.Net服务开发指南文件版本历史文件版本修订日期修订人审核人批准人修订说明V1.02011-3-20 陈杨目 录1引言11.1文档目的11.2参考资料12Web Service服务开发12.1概述12.2WSE方式服务发布22.2.1系统环境22.2.2开发环境22.2.3发布步骤32.2.4引用WSE方式服务103WCF服务开发163.1概述163.2自定义Binding服务发布173.2.1系统环境173.2.2开发环境173.2.3服务编写及配置183.2.4引用自定义Binding方式WCF服务23Copyright 中国石油塔里木油田公司 II 1 引言1.1 文档目的本文档用以指导开发人员如何在.Net开发环境下发布系统应用服务,文档分为Web Service 服务开发和WCF服务开发两部分。1.2 参考资料2 Web Service服务开发2.1 概述Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web 应用程序分支,是自包含、自描述、模块 化的应用,可以发布、定位、通过web调用。Web Service是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Service,通过Web Service内部执行得到所需结果.Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。其功能图如下:2.2 WSE方式服务发布2.2.1 系统环境 操作系统:Windows 2000/2003/XP WindowsNT/Windows 7 为内核的操作系统,IIS 6.0/7.0运行库:Microsoft .NET Framework 3.5 SP1数据访问:Oracle 客户端组件或MS SQL Server 20052.2.2 开发环境名称版本用途说明Microsoft Visual Studio 20089.0.30729.1 SP.Net 开发环境,可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。Microsoft WSE 3.0V3.0(需在安装选项中选择Developer项)Web Services Enhancements 3.0 for Microsoft .NET (WSE)是一个用来建设Web服务的.NET类库,它支持最新的Web服务协议,包括WS-Security、WS-SecureConversation、WS-Trust、WS-Policy、WS-SecurityPolicy、WS-Addressing和 WS-Attachments。 WSE可使开发人员跨安全平台建设可升级的、安全的Web服务。它支持用传输的方式发送SOAP消息,而不是HTTP。另一个特点是具有建立SOAP路由器的功能,SOAP消息被发送给SOAP路由器,路由器再将工作交付给托管该服务的Web服务器。2.2.3 发布步骤第一步:创建ASP.NET应用程序: 第二步:创建和配置Web Service服务 1. 创建Web Service服务2. 在服务项目中,添加对Microsoft.Web.Service3.dll的引用3.添加配置文件4.添加验证类5.验证类继承UsernameTokenManager6.重写AuthenticateToken(UsernameToken token) 方法 protected override string AuthenticateToken(UsernameToken token) bool checkPass = CheckPassw(token); if (checkPass) return token.Password; else throw new Exception(UserName Or Password Wrong); 7.编写安全验证类CheckPassw public bool CheckPassw(UsernameToken token) bool result = false; if (token.PasswordOption = PasswordOption.SendPlainText) if (token.Username = admin & token.Password = 123456) result = true; return result; 8.在服务实现类中添加安全策略标示Policy(ServerPolicy)9.修改Web.config 配置信息第一步:首先在 节点中添加节点,确定协议方式节点内容如下: 第二步:在配置文件中添加 节点(注不要添加在 节点中)确定服务安全检查类 add type=TestWebService.WebServiceUsernameTokenManager书写规则 注释: 命名空间 + 类名称节点内容如下: !- 第三步:注意事项1.检查配置文件中节点是否添加引用配置 添加节点内容如下: 2. 检查配置文件中节点是否添加引用配置添加节点内容如下:2.2.4 引用WSE方式服务第一步:客户端程序添加Web 引用第二步:在服务项目中,添加对Microsoft.Web.Service3.dll的引用第三步:添加Web项目中平台提供的WSE配置文件第四步:修改Web程序web.config文件1.首先在 节点中添加节点,确定协议方式节点内容如下: 2.在配置文件中添加 节点(注不要添加在 节点中)节点内容如下: 3.注意事项检查配置文件中节点是否添加引用配置 添加节点内容如下: 检查配置文件中节点是否添加引用配置添加节点内容如下:第五步:修改引用服务类Reference.cs 文件1. 命名空间添加WSE引用using Microsoft.Web.Services3;2. 修改引用服务类继承类修改为Microsoft.Web.Services3.WebServicesClientProtocol修改完成代码如下:第五步:客户端使用,代码如下:protected void Page_Load(object sender, EventArgs e) /使用WebService的WSE方式是 ,要修改引用服务的Reference的CS文件,加入以用 using Microsoft.Web.Services3; ,同时让类继承Microsoft.Web.Services3.WebServicesClientProtocol Microsoft.Web.Services3.Security.Tokens.UsernameToken token = new Microsoft.Web.Services3.Security.Tokens.UsernameToken(admin, 123456, Microsoft.Web.Services3.Security.Tokens.PasswordOption.SendPlainText); WebRef.WSWseSecurityService aa = new TestWebService.WebRef.WSWseSecurityService(); aa.SetClientCredential(token); aa.SetPolicy(ServerPolicy); DataTable dt = aa.QueryStaffByPersonID(8acfecd32c2fb035012c2fb6ea6b0002); 3 WCF服务开发3.1 概述Windows Communication Foundation (WCF) 是由微软发展的一组数据通信的应用程序开发接口,它是.NET框架的一部分,由 .NET Framework 3.0 开始引入。在 .NET Framework 2.0 以及前版本中,微软发展了 Web Service (SOAP with HTTP communication),.NET Remoting (TCP/HTTP/Pipeline communication) 以及基础的 Winsock 等通信支持,由于各个通信方法的设计方法不同,而且彼此之间也有相互的重叠性(例如 .NET Remoting 可以开发 SOAP, HTTP 通信),因此微软重新查看了这些通信方法,并设计了一个统一的程序开发模型,对于数据通信提供了最基本最有弹性的支持,这就是 WCF合约(Contract)WCF 的基本概念是以合约 (Contract) 来定义双方沟通的协议,合约必须要以接口的方式来体现,而实际的服务代码必须要由这些合约接口派生并实现。合约分成了四种: 数据合约 (Data Contract),订定双方沟通时的数据格式; 服务合约 (Service Contract),订定服务的定义; 操作合约 (Operation Contract),订定服务提供的方法; 消息合约 (Message Contract),订定在通信期间改写消息内容的规范。协议绑定 (Binding)由于 WCF 支持了 HTTP,TCP,Named Pipe,MSMQ,Peer-To-Peer TCP 等协议,而 HTTP 又分为基本 HTTP 支持 (BasicHttpBinding) 以及 WS-HTTP 支持 (WsHttpBinding),而 TCP 亦支持 NetTcpBinding,NetPeerTcpBinding 等通信方式,因此,双方必须要统一通信的协议,并且也要在编码以及格式上要有所一致。安全性层次WCF 实现上已经支持了传输层次安全性 (Transport-level security) 以及消息层次安全性 (Message-level security) 两种。 传输层次安全性:在数据传输时期加密,例如 SSL。消息层次安全性:在数据处理时就加密,例如使用数字签名,散列或是使用密钥加密法等3.2 自定义Binding服务发布3.2.1 系统环境 操作系统:Windows 2000/2003/XP WindowsNT/Windows 7 为内核的操作系统,IIS 6.0/7.0运行库:Microsoft .NET Framework 3.5 SP1数据访问:Oracle 客户端组件或MS SQL Server 20053.2.2 开发环境名称版本用途说明Microsoft Visual Studio 20089.0.30729.1 SP.Net 开发环境,可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。Microsoft WSE 3.0V3.0Web Services Enhancements 2.0 for Microsoft .NET (WSE)是一个用来建设Web服务的.NET类库,它支持最新的Web服务协议,包括WS-Security、WS-SecureConversation、WS-Trust、WS-Policy、WS-SecurityPolicy、WS-Addressing和 WS-Attachments。 WSE可使开发人员跨安全平台建设可升级的、安全的Web服务。它支持用传输的方式发送SOAP消息,而不是HTTP。另一个特点是具有建立SOAP路由器的功能,SOAP消息被发送给SOAP路由器,路由器再将工作交付给托管该服务的Web服务器。3.2.3 服务编写及配置1.建立一个Web应用程序工程WebApp.2.新建一个接口: IBussiness 3.添加System.ServiceModel引用4. 对IBussiness实现契约using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;namespace WebApp ServiceContract public interface IBussiness OperationContract string Operate(); 注:ServiceContract为服务契约标签, OperationContract为操作契约标签5.创建一个类Bussiness,实现IBussiness接口using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace WebApp public class Bussiness:IBussiness #region IBussiness 成员 string IBussiness.Operate() return Called Success; #endregion 6.创建一个WCF服务BussService ,解决方案中会自动产生三个文件BussService.svc,BussService.svc.cs,IBussService.cs7.删除BussService.svc.cs,IBussService.cs两个文件,并修改WCF宿主文件BussService.svc为8.添加UserNameToken验证类,并重写Validate方法(本示例采用了直接判断简单的验证方式,可在此方法中设置复杂验证手段,如将用户名密码存入数据库等)using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.IdentityModel.Selectors;using System.IdentityModel.Tokens;namespace WebApp public class MyUserNameTokenValidator : UserNamePasswordValidator / / Validates the user name and password combination. / / The user name. / The password. public override void Validate(string userName, string password) / validate arguments if (string.IsNullOrEmpty(userName) throw new ArgumentNullException(userName); / check if the user is not xiaozhuang if (userName != user | password != 123456) throw new SecurityTokenException(用户名或者密码错误!); 9.添加自定Binding 引用(SOA.ClearUserNameBinding.dll)10.为BussService进行配置 打开Web.config,找到system.serviceModel配置单元. 添加 为自定义绑定类型 name 为绑定类型名字 type 为引用类以及命名空间 10.修改配置并设置 安全协议绑定,修改后的配置文件如下: ( customUserNamePasswordValidatorType 配置使用的校验类以及其命名空间) 3.2.4 引用自定义Binding方式WCF服务第一步:客户端程序添加Web 引用(注一定选择Web应用方式)第二步:在服务项目中,添加对Microsoft.Web.Service3.dll的引用第三步:添加Web项目中平台提供的WSE配置文件第四步:修改Web程序web.config文件1.首先在 节点中添加节点,确定协议方式节点内容如下: 2.在配置文件中添加 节点(注不要添加在 节点中)节点内容如下: 3.注意事项检查配置文件中节点是否添加引用配置 添加节点内容如下: 检查配置文件中节点是否添加引用配置添加节点内容如下:第五步:修改引用服务类Reference.cs 文件3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年标准)护理用工协议书
- (2025年标准)红日药业协议书
- 2025年智能变电站行业规模分析及投资前景研究报告
- (2025年标准)合资种植经营协议书
- 2025年直流变频空调行业投资趋势与盈利模式研究报告
- (2025年标准)合伙分店协议书
- (2025年标准)合肥租地合同协议书
- (2025年标准)合法的婚前协议书
- 2025广西现代物流集团第三次公开招聘109人备考题库及答案解析
- 2025广西贺州市平桂区农业农村局招募农技推广服务特聘农技员2人备考题库及答案解析
- 《月下过小修净绿堂试吴客所饷松萝茶》赏析
- 数据中心负荷计算方法
- 水箱拆除专项施工方案
- YY/T 1851-2022用于增材制造的医用纯钽粉末
- GB/T 20858-2007玻璃容器用重量法测定容量试验方法
- 纪委案件审理课件教材
- 生活中的会计课件
- 辽宁大学学生手册
- 湘美版美术一年级上册全册课件
- 酒水购销合同范本(3篇)
- 师说一等奖优秀课件师说优质课一等奖
评论
0/150
提交评论