DotNet服务开发指南Word文件下载.docx

上传人:b****4 文档编号:16637614 上传时间:2022-11-25 格式:DOCX 页数:30 大小:1.36MB
下载 相关 举报
DotNet服务开发指南Word文件下载.docx_第1页
第1页 / 共30页
DotNet服务开发指南Word文件下载.docx_第2页
第2页 / 共30页
DotNet服务开发指南Word文件下载.docx_第3页
第3页 / 共30页
DotNet服务开发指南Word文件下载.docx_第4页
第4页 / 共30页
DotNet服务开发指南Word文件下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

DotNet服务开发指南Word文件下载.docx

《DotNet服务开发指南Word文件下载.docx》由会员分享,可在线阅读,更多相关《DotNet服务开发指南Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。

DotNet服务开发指南Word文件下载.docx

3.2自定义Binding服务发布17

3.2.1系统环境17

3.2.2开发环境17

3.2.3服务编写及配置18

3.2.4引用自定义Binding方式WCF服务23

1引言

1.1文档目的

本文档用以指导开发人员如何在.Net开发环境下发布系统应用服务,文档分为WebService服务开发和WCF服务开发两部分。

1.2参考资料

2WebService服务开发

2.1概述

WebServices是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。

它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;

它是一种新的web应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。

WebService是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问WebService,通过WebService内部执行得到所需结果.WebService可以执行从简单的请求到复杂商务处理的任何功能。

一旦部署以后,其他WebService应用程序可以发现并调用它部署的服务。

其功能图如下:

2.2WSE方式服务发布

2.2.1系统环境

操作系统:

Windows2000/2003/XPWindowsNT/Windows7为内核的操作系统,IIS6.0/7.0

运行库:

Microsoft.NETFramework3.5SP1

数据访问:

Oracle客户端组件或MSSQLServer2005

2.2.2开发环境

名称

版本

用途说明

MicrosoftVisualStudio2008

9.0.30729.1SP

.Net开发环境,可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。

MicrosoftWSE3.0

V3.0

(需在安装选项中选择Developer项)

WebServicesEnhancements3.0forMicrosoft.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应用程序:

第二步:

创建和配置WebService服务

1.创建WebService服务

2.在服务项目中,添加对Microsoft.Web.Service3.dll的引用

3.添加配置文件

4.添加验证类

5.验证类继承UsernameTokenManager

6.重写AuthenticateToken(UsernameTokentoken)方法

protectedoverridestringAuthenticateToken(UsernameTokentoken)

{

boolcheckPass=CheckPassw(token);

if(checkPass)

returntoken.Password;

}

else

thrownewException("

UserNameOrPasswordWrong"

);

}

7.编写安全验证类CheckPassw

publicboolCheckPassw(UsernameTokentoken)

boolresult=false;

if(token.PasswordOption==PasswordOption.SendPlainText)

if(token.Username=="

admin"

&

&

token.Password=="

123456"

result=true;

returnresult;

8.在服务实现类中添加安全策略标示[Policy("

ServerPolicy"

)]

9.修改Web.config配置信息

首先在<

system.web>

节点中添加<

webServices>

节点,确定协议方式

节点内容如下:

<

<

soapServerProtocolFactorytype="

Microsoft.Web.Services3.WseProtocolFactory,Microsoft.Web.Services3,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"

/>

soapExtensionImporterTypes>

addtype="

Microsoft.Web.Services3.Description.WseExtensionImporter,Microsoft.Web.Services3,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"

/soapExtensionImporterTypes>

/webServices>

第二步:

在配置文件中添加<

microsoft.web.services3>

节点(注不要添加在<

节点中)

确定服务安全检查类addtype="

TestWebService.WebServiceUsernameTokenManager"

书写规则注释:

命名空间+类名称

diagnostics>

traceenabled="

false"

input="

InputTrace.webinfo"

output="

OutputTrace.webinfo"

detailedErrorsenabled="

/diagnostics>

security>

securityTokenManager>

!

--Youcanoptionallychoosetosupplythenameofthedll(SampleBase)inwhichtofindtheCustomUsernameTokenManagertype-->

--Ifnodllnameissupplied(asinthiscase)theCustomUsernameTokenManagerisassumedtobeinthethe\bindirectory-->

namespace="

http:

//docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"

localName="

UsernameToken"

xmlns="

"

/securityTokenManager>

--<

x509allowTestRoot="

true"

-->

/security>

policyfileName="

wse3policyCache.config"

tokenIssuer>

statefulSecurityContextTokenenabled="

/tokenIssuer>

/microsoft.web.services3>

第三步:

注意事项

1.检查配置文件中<

configSections>

节点是否添加引用配置

添加节点内容如下:

sectionname="

microsoft.web.services3"

type="

Microsoft.Web.Services3.Configuration.WebServicesConfiguration,Microsoft.Web.Services3,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"

2.检查配置文件中<

assemblies>

添加节点内容如下:

addassembly="

Microsoft.Web.Services3,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"

2.2.4引用WSE方式服务

客户端程序添加Web引用

在服务项目中,添加对Microsoft.Web.Service3.dll的引用

添加Web项目中平台提供的WSE配置文件

第四步:

修改Web程序web.config文件

1.首先在<

2.在配置文件中添加<

3.注意事项

检查配置文件中<

第五步:

修改引用服务类Reference.cs文件

1.命名空间添加WSE引用

usingMicrosoft.Web.Services3;

2.修改引用服务类继承类

修改为Microsoft.Web.Services3.WebServicesClientProtocol

修改完成代码如下:

客户端使用,代码如下:

protectedvoidPage_Load(objectsender,EventArgse)

//使用WebService的WSE方式是,要修改引用服务的Reference的CS文件,加入以用usingMicrosoft.Web.Services3;

,同时让类继承Microsoft.Web.Services3.WebServicesClientProtocol

Microsoft.Web.Services3.Security.Tokens.UsernameTokentoken=newMicrosoft.Web.Services3.Security.Tokens.UsernameToken("

"

Microsoft.Web.Services3.Security.Tokens.PasswordOption.SendPlainText);

WebRef.WSWseSecurityServiceaa=newTestWebService.WebRef.WSWseSecurityService();

aa.SetClientCredential(token);

aa.SetPolicy("

DataTabledt=aa.QueryStaffByPersonID("

8acfecd32c2fb035012c2fb6ea6b0002"

3WCF服务开发

3.1概述

WindowsCommunicationFoundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,它是.NET框架的一部分,由.NETFramework3.0开始引入。

在.NETFramework2.0以及前版本中,微软发展了WebService(SOAPwithHTTPcommunication),.NETRemoting(TCP/HTTP/Pipelinecommunication)以及基础的Winsock等通信支持,由于各个通信方法的设计方法不同,而且彼此之间也有相互的重叠性(例如.NETRemoting可以开发SOAP,HTTP通信),因此微软重新查看了这些通信方法,并设计了一个统一的程序开发模型,对于数据通信提供了最基本最有弹性的支持,这就是WCF

合约(Contract)

  WCF的基本概念是以合约(Contract)来定义双方沟通的协议,合约必须要以接口的方式来体现,而实际的服务代码必须要由这些合约接口派生并实现。

合约分成了四种:

数据合约(DataContract),订定双方沟通时的数据格式;

服务合约(ServiceContract),订定服务的定义;

操作合约(OperationContract),订定服务提供的方法;

消息合约(MessageContract),订定在通信期间改写消息内容的规范。

协议绑定(Binding)

  由于WCF支持了HTTP,TCP,NamedPipe,MSMQ,Peer-To-PeerTCP等协议,而HTTP又分为基本HTTP支持(BasicHttpBinding)以及WS-HTTP支持(WsHttpBinding),而TCP亦支持NetTcpBinding,NetPeerTcpBinding等通信方式,因此,双方必须要统一通信的协议,并且也要在编码以及格式上要有所一致。

安全性层次

WCF实现上已经支持了传输层次安全性(Transport-levelsecurity)以及消息层次安全性(Message-levelsecurity)两种。

传输层次安全性:

在数据传输时期加密,例如SSL。

消息层次安全性:

在数据处理时就加密,例如使用数字签名,散列或是使用密钥加密法等

3.2自定义Binding服务发布

3.2.1系统环境

3.2.2开发环境

WebServicesEnhancements2.0forMicrosoft.NET(WSE)是一个用来建设Web服务的.NET类库,它支持最新的Web服务协议,包括WS-Security、WS-SecureConversation、WS-Trust、WS-Policy、WS-SecurityPolicy、WS-Addressing和WS-Attachments。

3.2.3服务编写及配置

1.建立一个Web应用程序工程WebApp.

2.新建一个接口:

IBussiness

3.添加System.ServiceModel引用

4.对IBussiness实现契约

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

usingSystem.ServiceModel;

namespaceWebApp

{

[ServiceContract]

publicinterfaceIBussiness

[OperationContract]

stringOperate();

}

注:

[ServiceContract]为服务契约标签,[OperationContract]为操作契约标签

5.创建一个类Bussiness,实现IBussiness接口

usingSystem.Web;

publicclassBussiness:

IBussiness

#regionIBussiness成员

stringIBussiness.Operate()

return"

CalledSuccess"

;

#endregion

6.创建一个WCF服务BussService,解决方案中会自动产生三个文件BussService.svc,BussService.svc.cs,IBussService.cs

7.删除BussService.svc.cs,IBussService.cs两个文件,并修改WCF宿主文件BussService.svc为

%@ServiceHostLanguage="

C#"

Debug="

Service="

WebApp.Bussiness"

%>

8.添加UserNameToken验证类,并重写Validate方法(本示例采用了直接判断简单的验证方式,可在此方法中设置复杂验证手段,如将用户名密码存入数据库等)

usingSystem.IdentityModel.Selectors;

usingSystem.IdentityModel.Tokens;

publicclassMyUserNameTokenValidator:

UserNamePasswordValidator

///<

summary>

///Validatestheusernameandpasswordcombination.

/summary>

paramname="

userName"

>

Theusername.<

/param>

password"

Thepassword.<

publicoverridevoidValidate(stringuserName,stringpassword)

//validatearguments

if(string.IsNullOrEmpty(userName))

thrownewArgumentNullException("

//checkiftheuserisnotxiaozhuang

if(userName!

="

user"

||password!

thrownewSecurityTokenException("

用户名或者密码错误!

9.添加自定Binding引用(SOA.ClearUserNameBind

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1