与.net程序员面试宝典及第7章_第1页
与.net程序员面试宝典及第7章_第2页
与.net程序员面试宝典及第7章_第3页
与.net程序员面试宝典及第7章_第4页
与.net程序员面试宝典及第7章_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

7章WebServiceXML技术进行研发。在.NETXML的支持和应用随处可见,最常见的是基于WebService的应用。WebService是一种网络服务,WebService技术允许使用者网络WebService所提供的服务。在网络快速发展的今天,这种基于网络的分布式服务已经被广泛地应用。本章将讨论关于.NETXMLWebService的面XMLInternet环境中跨平台的、依赖于内容的技术,是当前处理结构化文档信息的有力工具。WebService基于简单对象协议(SOAP),而SOAP本身基于XML语法XML、SOAPXML的基解答关于XML基本特性的面试题。面试题 XML文档结构包括哪XMLInternet环境中跨平台的、依赖于内容的技术,是当前处理结构化文档信息的XMLXMLXMLXMLXML(ExtensibleMarkupLanguage)HTML一样,都是是一种简单的数据语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立。虽然XML比二进制数据要占用的空间,但XML极其简单、易于掌握和<?xmlversion="1.0" 开始,并以“?>”结束。“<?”后面紧跟的是处理指令的名称。XML处理指令要求指定一versionstandaloneencodeing。其中,standalone是指是否允许使用外部,可设置为yes或no。yes是指定不使用外部;no为使用。encodeing是指作者使用的字符编码格式,如UTF-8、GBK、gb2312等。XML文件都必须有且只能有一个根元素,用于描述文档功能,可以自定义根元素。下例中的root为根元素。以下是代码片段: 是XML内容的基本单元,元素包括了开始、结束和之间的内容。 XML文档则避免了格式XMLXML文档。整行统称为元素,其中XML的标记有、注释、处理指令、DTD和等。在XML中,注释与HTML指令。XML就是一个处理指令。PCDATACDATA:是指不要通过解析器进行解析的文本XML就是可扩展性标记语言,XML是一种简单的数据语言,使用一系列简单的标记描述数据。在逻辑上,XML文档组成部分包括、元素、注释、字符和处理面试题 简述XML的优缺展性,如表7.1所示。7.1XML XML得以成功的主要因一就是它的基于规范和标准的开放性。XML技术根据XML文档就能确定该数据的意义。同时,XMLDTD档的定义,我们可以通过DTD文档来检验XML文档的有效而且因为XML更容易在应用程序间迁移。不同的环境和操作系统可以互相通信,例如,MathML(数学标记语言)、CML(化学标记语言)TecML(技术数据标记语言),每种语言都用于其特定的环境。基于上述XML的优点,CDF框架的所有数据都采取了XML的格式,这样不仅可以在系统的各个不同模块之间有了统一对已有系统的扩展。另外,使用XML作为表单的描述格式可以满足用户对表单定当然 也有一些缺点,在类似问题时需要规避,比如树状、大数据量低效率7.2XML 展性。正是由于这些优点,XML已经被应用在数据交换、WebService、电子商务、配置分考虑到XML的缺点,在设计初期就应该避免将大数据量的信息在XML文件中。面试题96SOAP协议由哪几部分SOAPWebService应用的基础协议,这个问题出现在.NET面试中的几率非常大。作为.NETWebServiceSOAP的内SOAP(SimpleObjectAccessProtocol,简单对象协议)是一种轻量的、简单的、基于XML的协议,它被设计成在Web上交换结构化的和的信息。SOAP可以和现存7.3SOAP组 SOAP封SOAP编码规SOAPRPC表SOAP消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求/SOAPXMSOAP消息就是一个包含有一个必需的SOAP的封装包,一个可选的SOAP标头和一个必需的SOAP体块的XML文档。SOAP绑定HTTP,可具SOAP的样式和分散的灵活性HTTP的丰富的特征库的优点。在HTTP上传送SOAP并不是说SOAP会覆盖现有的HTTP语义,而是HTTP上的SOAP语义会自然地映射到HTTP语义。注意:HTTP作为协议绑定的场合中,RPCHTTPRPCHTTPRPCSOAPHTTP协议SOAP是一种轻量的、简单的、基于XML的协议。SOAP技术有助于实现大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户。SOAP是把成熟的基于HTTPWeb技术与XML的灵活性和可扩展性组合在了一起。面试题 什么是WSDL语面章节中,读者已经了解了WebService的基本协议SOAP,这已经构成了架构和使用WebService的必备条件。但是在实际应用中,仍然需要一些辅助措施来协助WebService更好地提供服务。本小节将具体探讨这个问题。WSDL(WebServicesDescriptionLanguage)Web服务和说明如何与Web服务通信的XML语言。WSDL是一种符合XML语范的语言,它的设计完全基于SOAP协议的实现,当一个WebService服务望为使用者提供服务说明时,WSDL假设构建销售本项项目名PhoneService。该公司销售不同型号的移动,所以公司Web服务的后端数据存储库中将包含一个具有两列(modelnumber和price)的表格。getListOfModels getPrice getListOfModels()方法提供了一个字符串数组,其中每个字符串表示一种移动的型号。getPricet()通过的型号,返回它的价格。WSDL将这些方法作为操作调用。以下代码将开始构建WSDL接口文件(WSDLinterfacefile)。<?xml<definitions """/>//<portTypename="<operationname="getListOfModels<operationWSDLWSDL抽象定义和它们的实现WSDL将指定能够Web服务实际实现的SOAP服务器,并且从那时起SOAP的整个任务就是将用户从WSDL文件带到它的实现。WSDL需要一个附加步骤来创建该WSDL文件的概要,WSDL将该文件称为<?xmlversion="1.0"encoding="UTF-8"<definitions //3个必须做的外部名称空间 WSDL、SOAP和XSD ><importlocation="interface"/>

WSDL文

//ServiceWeb服务的名称和端口的列<service <<//port包含Web服务的位置和用于此服 <port<soap:addresslocation="servlet/rpcrouter"/>WSDL(WebServicesDescriptionLanguage)是一种符合XML语范的语言,用于WebService方法,其中包括方法的名称、参数数量、各个参数的类型以及返回的类型等信息。一个WSDL文件可以完全地描述整个服务器所提供的WebXML在.NETFramework中有着重要的作用,.NETFramework不仅允许在应用程序中Web服务和ADO.NET也使用XML。为了扩展使用XML,.NETFramework包含了System.XML命名空间,这个命名空间带有许多处理XML的类。本节将覆盖有关.NET操作XML的面试题。面试题 C#中如何将XML数据岛转换为HTML格这个问题是一个实际应用的技巧,主要应聘者对XML数据岛以及C#相关开发经XMLHTMLXMLHTML页面中集成XML,对XML编写,不需要通过或<OBJECT>XML。微软公司在.NET2.0中的XML类中增加了piledTransform类。该类是一个XSLTXSLT1.0的语法。它相比.NET1.0XslTransform类,性能有显著的提升,piledTransformXslTransformXML文件加载后执行XSLT转换。piledTransformxslt=new .xml", pany.xml代码如下:<?xml<?xml <Categorygenre="autobiographyBrand="联想<Categorygenre="novelBrand="金士顿 te<TABLE" tes te<TD><xsl:value-of<TD><xsl:value-of<TD><xsl:value-of 通过调用.NET的piledTransformXML数据转换成浏览器所能识别的HTML语言。这个功能在处理一些具有动态模板的Blog非常实用。面试题 如何使用DOM操作XML文 是一个DOM类型,它代表了一个XML文档,使用XML 型,可以对一个XML文档进行所有期望的操作。本小节将列举XML .NETDOM.NETXML文档对象模型(DOM)XML文档的内存中表示形式。DOM使程序员能够以编程方式、处理和修改XML文档。.NET的文档对象模型,是由XMLNode类型及其派生类型来实现的,所有这些类型一起,覆盖了DOM中所有的元素类型。7.1DOM层次结构下列代码以XML 为例,展示了XML增加、删除及修改的使用方法。首先使用XML 创建一个XML文件,代码如下:stringpath=Server.MapPath(".");path+="\\bookstore.xml"; xmlDoc=newXML

XMLNodeXMLNoderoot=XMLElementxe1=xmlDoc.CreateElement("book");//创建一个<book>结点xe1.SetAttribute("genre"," //ISBNXMLElementxesub1xmlDoc.CreateElement("title");//xesub1.InnerText="CS 到精通 XMLElementxesub2=xmlDoc.CreateElement("author");xesub2.InnerText="月关";XMLElementxesub3=xmlDoc.CreateElement("price");xesub3.InnerText="58.3"; stringstringpath=Server.MapPath(".");path+="\\bookstore.xml"; xmlDoc=new XMLNodeListxnlxmlDoc.SelectSingleNode("bookstore").ChildNodes;foreach(XMLNodexninxnl) {if(xe.GetAttribute("genre")== { }elseif(xe.GetAttribute("genre")== { }} stringstringpath=Server.MapPath(".");path+="\\bookstore.xml"; xmlDoc=newXML XMLNodeListnodeList=foreachXMLNodexnin {if(xe.GetAttribute("genre")=={xe.SetAttribute("genre","updateXMLNodeListnls=xe.ChildNodes;””foreachforeach(XMLNodexn1in{XMLElementxe2=if(xe2.Name=={xe2.InnerText月关";}}}}通过使用XML 对象,可以自由地操作XML文档中的结点和属性,通过SelectSingleNode()、CreateElement()、AppendChild()等方法及属性,程序员可以随意地对XML文档进行所有期望的操作。面试题 在C#中如何对XML数据进行排XML作为一个被广泛使用的标准语言,XML的应用可以说是无处不在,对XML数C#XPathExpressionXML数XPathExpression类是System.Xml.XPath名字空间里非常有用的一个类,通过配合XPathNavigator对象的使用读者可以轻松地对XML数据进行排序。XpathExpression提供已编译XPath表达式的类型化类。当程XPathNavigatorCompile()方法时,生成已经编译XPath表达式。XPathExpression对象AddSort()方法可XML排序的功能,////1允许使用自定义的排序表达 voidAddSort(objectexpr,IComparer//2是比较常用的方法。这个方法5个参数:分别表述排序的对象、排序的顺序、条件的 voidAddSort(objectexpr,XmlSortOrderorder,XmlCaseOrdercaseOrder,stringlang,XmlDataTypedataType当对XPath表达式添加了排序的功能,可以先将编译过的XPath表达式作为给XPathNavigator对象的Select()方法,Select()方法返回一个XPathNodeItor对象,这时就可以使用这个返回对象对XML进行遍历排序。PrivatePrivatestring{StringBuilders=newStringBuilder();stringxpath="/Customers/XMLName";doc=newXPathNavigatornav=doc.CreateNavigator();XPathExpressionexp= tornodeIter2=nav.Select(exp);while(nodeIter2.MoveNext()){s.Append(nodeIter2.Current.Value+"<br}return}行排序;也可以使用XSLT进行排序。XML数据排序的方法多种多样,最常见的使XSLTXML文档中的字符串或数字xsl:sortxsl:for-each进行循环时对XML数据进行排序,这个元素的功能很方便,而且简单。但在实际的工作中针对一些复XMLXMLxsl:sort元素显然不能满足要求,笔者在这推荐使用C#中XPathExpression类对XML数据进行排序。面试题 .NET中如何读写流格式的通过前面章节的学习读者已经掌握了XML通过DOM对象读写XML文件,那么通过什么方式可以读写流格式的XML。本小节将解答如何实现这样的需求。多处理XML的类。如XML(这是DOM实现方式)类,以及.NET为SAX提供一种接口,也是指一个软件包。SAX是一个用于处理XML驱动的“推”模型,虽然它不是W3C标准,但它却是一个得到了广泛认可的API。注意:SAX解析器不像DOM那样建立一个完整的文档树,而是在文档时激活一系XMLReaderSAXSAX是一种推模型(XML数XMLReaderrdr=//创建一个新的XMLReader实while{ifrdr.NodeType elseif(rdr.NodeType== elseif(rdr.NodeType== }XMLWriter类可以把XML写入一个流、文件、StringBuilder、TextWriter或另一个XMLWriter对象中。与XMLReader一样,XMLWriter类以只向前、未缓存的方式进行写//使用XMLWirterSettings对象进行是否缩进文本、缩进量等配置XMLWriterSettingssettings=newXMLWriterSettings();settings.Indent=true; settings.NewLineOnAttributes=true;//把每个属性写在一行,这样做可以更容易XMLXMLWriterwriter= writer.WriteElementString("title","CaseoftheMoney"); //关闭任何打开的元素或属性并将编写器重新设置为Start

XMLXMLReaderNodeType、Value等属性或方法可以方便快捷地XML中指定的数据,但XMLReader不能够对同一命名空间的XMLWriter对象,它提供了简单便捷的XML文件写操作的功能。面试102.NET中如何实XML串行微软已经串行化XML数据的重要性,因此在.NET框架中包含了命名空间小节将解答如何实现XML串行化。I/O的一种机制,该机制在框架(Frame)/文档()/视图(View)模式中得到了很好的应用。串行化的目的是数据和数据转换。数据指的是在用户会话时保存数据,当应用程序关闭时,数据被保存(串被另一个系统识别的格式,使用串行化和XML,可以很方便地进行数据转换。XMLSerializerXMLXML文档非串行化为对象的函数的参数。下面的C#代码说明了构造函数的用法:XMLSerializerser=new 实际的串行化过程在XMLSerializer类的Serialize()方法中实现。该方法允许在串行化过在本例中一个对象被串行化保存到本地磁盘的一个文件当中,例子中首先是类,后面usingusingusingSystem.IO;namespace{publicclass{publicstringAddress1;publicstringCountry;}publicclass{publicstringFirstName;publicstringLastName;publicstringpublicAddress }publicclass {publicstring publicAuthor publicdouble}class{staticvoidMain(string[]{BookBookObjectnew XMLSerializerser=newTextWriterwriter=newStreamWriter("booktest.xml");BookObject.Title="PracticalLotusScript";BookObject.RetailPrice=43.95;BookObject.AuthorObject=newAuthor();BookObject.AuthorObject.FirstName="Tony";BookObject.AuthorObject.LastName="Patton";//Author对象中的Address对象BookObject.AuthorObject.AddressObject=newAddress();BookObject.AuthorObject.AddressObject.Address"1MainStreet";BookObject.AuthorObject.AddressObject.Country="USA";ser.Serialize(writer,BookObject);//将对象序列化到XML文档中 //关闭TextWriter对象,释放资源}}}下是例子程序产生的XML文档。<?xml<?xmlversion="1.0"encoding="utf-<Bookxmlns:xsd="<Title>Practical<Address>1Main"串行化XML是指为了方便或传输,把一个对象的公共的域和属性保存为一种串XML文件的方法。WebService用程序组织模式扩展到以网络为中心的组织模式,.NETFrameworkWebService的支持,无论是WebService,还是创建WebService,使用.NET都能快速有效地实现功能。本小节将着重覆盖关于使用.NET开发WebService服务端和客户端的面试题。面试103如何在.NET项目中调Web在.NETWebServiceC#中普通的方法添加一个特性,就能把这个方法定义为WebService方法,而无须做任Service。那么,如何在.NET项目中调用WebService?安装时,asmx文件也会在IIS中被成由ASP.NET组件来处理。也就是说,一个后缀名为asmx文件和其代码组成了一个WebService资源。在这个组合中,asmx文件只是作为一个资源文件出现,并且WebServiceSOAP请在逻辑的处理SOAP通信的工作,.NET提供了WebService类型和WebMethod特性。在继承自WebService类型中的公共方法上添加WebMethod特性就可以其为一个WebService方法。下面是一个具体的示例。Web站点时选择“ASP.NETWebnamespacenamespace{//////Service1 ///</summary>[WebService(Namespace="[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)] //若要允许使用ASP.NETAJAX 中调用此Web服务,请取消对下行的注////publicclassService1:{publicstring{return}o}}VisualStudioWebServiceoWorld()WebMethodWebService方法。WebServiceWebMethodSOAP通信的工作,程序员只需致力于处理逻辑工作即可。总之,WebServiceWebMethod为程序员提SOAP处理功能,而在绝大多数情况下,程序员所要做的就是在此基础上扩ASP.NETWebServiceASP.NETWebReferences上右WebService的地址,在Web名的文本框中输入一个定义的名称,然后单击“添加引用”按钮,如图7.2所示。7.2WebServicenamespacenamespace{publicpartialclassTest:{protectedvoidPage_Load(objectsender,EventArgs{WebServiceTest.Service1wsnewWebApplicationDemo.WebServiceTest.Service1();Label1.Text=ws. oWorld();//newWebApplicationDemo.WebServiceTest.Service1();Label1.Text=ws. oWorld();//调用WebService方法返回 }}}这样就完成了WebService的调用,整个过程序员所添加的代码很少,仅两行就可以完成oWord()方法的调用。在.NETWebServiceWebMethodWebService,在ASP.NET中,可以很容易地通过添加一个新的Web、输入其对应的WebService地址进而完成WebService的调用。面试题 什么是异步请求WebWebWeb服务请求响应并不是立即提供而是在最初请求事务完成后某个时候提供Web服务。这个问题主要应聘者对WebService异步请求机制的理解及应用。由于服务器处理速度、网络传输速度等,会使一个WebService从请求开始致客户端无法进行其他的动作或处理。这时候就需要异步地使用WebService。最容易被想到的方法当然是建立一个新的线程来执行WebService的请求并获得结果,下面的示例参考了.NETSDKWebServiceWebService的程序。其中以下示例代码是定义要调用的WebServices的示例,代码如下:usingusingusingSystem.Web;usingusingSystem.Threading;namespace{//////Summarydescriptionfor///[WebService(Namespace=" [WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)] WebServices运行script,主要应用在ASP.NET////publicclassAsyncWebService:{[WebMethod(Description异步调用演示")]publicstringAsyncMethodTest(){ return }}}usingnamespace{publicpartialclassAsyncDemo:{protectedvoidButton2_Click(objectsender,EventArgs{AsyncServices.AsyncWebServicews=newWebApplicationDemo.AsyncServices.AsyncWebService(); new this.TextBox1.Text+"["+System.DateTime.Now.ToString()+"]";}voidws_ pleted(objectsource, EventArgse){this.TextBox1.Text+=this.TextBox1.Text+="["+System.DateTime.Now.ToString()+}}}<%@<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="AsyncDemo.aspx.cs"Inherits="WebApplicationDemo.AsyncDemo"Async="true"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN <html "<headrunat="server"><formid="form1"<asp:LabelID="Label1"runat="server"Text="Label"></asp:Label> <asp:TextBoxID="TextBox1"runat="server"Width="507px"Height= ;<br<asp:ButtonID="Button2"runat="server"Text="asynchronous1"onclick="Button2_Click"/>[2009-05-04[2009-05-04[2009-05-04从运行结果记录的时间可以发现,ASP.NETWebService方法是ASP.NET的线程,并没有阻塞,这样可以达到ASP.NET异步处理ASP.NET异步调用的方法是使用WebService的方法名+Async()作为异步调用的方法名。面试题 如何缓存WebService数在WebService开发的过,WebService的性能一直困扰着大多数程序员。针对数这个问题主要应聘者的经验以及对WebService缓存机制的理解及应用。HTTPWeb服务(XMLWebInternetWeb服务),实际上可以高如,产品、销售信息、历史财务数据以及定价数据)。WebMethodBufferResponsetrueXMLWebServices方对响应的缓冲处理,该响应就通过网络返回到XMLWebServices客户端。当BufferResponsefalseXMLWebServices方法的响应在被序列化的同时被发回客注意:只有当已知XMLWebServices方法将大量数据返回到客户端时,才需要将BufferResponse设置false。对于少量数BufferResponse设置true可提高XMLWebServices的性能。usingusingusingSystem.Web;usingSystem.Web.Services;namespaceWebServiceDemo{//////Summarydescriptionfor///[WebService(Namespace=" [WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)] //publicclassAsyncWebService:{BufferResponse=TrueWebService数//CacheDuration=10表示缓存时间为10秒[WebMethod(Description返回缓存了的服务器时间数据",BufferResponse=true,CacheDuration=10)]publicstringGetServerTime(){returnSystem.DateTime.Now.ToString();//返回当前服务器的时}}}WebMethodBufferResponsetrueXMLWebServices方现了对WebService的高速缓存。面试题 WebService中的事务处理有哪事务最常用的一个场合就是数据库,这个问题主要应聘者WebService开发HTTP协议的无状态特性,XMLWebServices方法只能作为根对象参与事务。如记为在事务内运行,XMLWebServices方法就可以调用这些COM对象。如果一个TransactionOption属性为Required或RequiresNew的XMLWebServicesXMLWebServicesXMLWebServices方法只能用作事务中的根对象。表7.6列出了TransactionOption枚举。7.6TransactionOption枚 指示XMLWebServices方法不在事务的范围内运行。当处的情况下执行XMLWebServices方NotSupportedXMLWebServices方法不在事务的范围内运行。当处理请求时,将在没有事务的情况下执行XMLWebServices方法SupportedXMLWebServices方法不在事务范围内运行。当处理请求时,将在没有事务的情况下创建XMLWebServicesXMLWebServices方法需要事务。由于XMLWebServices方法只能作为根对象参与事务,因此将为XMLWebServices方法创建一个新事务RequiresNewXMLWebServices方法需要新事务。当内创建XMLWebusingusingusingSystem.Reflection; {…}:{…}WebService中支持5个级别的事务,分别为Transaction特性中的Disabled、NotSupported、Supported、Required和RequiresNew。面试题107如何处理WebService中的异异常处理在程序的开发过必不可缺,因为调用WebService方法毕竟和调用本地方法有所区别,所以Web Service的异常处理也有所不同。可以想象,如果希望捕获Web本小节将借助回答问题,来回答WebService中的异常机制。行期间发生了异常,Web服务应该不只是捕捉到异常,还应该把异常传回给Web服务的WebWeb服务中发生SOAP规范。.NETSOAPExceptionWeb服务中抛出异常,而SOAPException对象提供了一种表示SOAPFault的工业标准方法。在Web服务中处理异常与在Web或Windows应用程序中处理异常没有什么区别。但是,在设计Web服务中的异常块时,必须明白一个事实,即需要以一种平台无关的基于SOAP规范的方式把异常信息传递给Web服务的客户端。为了达到这个目的,应该使用性来设置SOAPException对象。Message:异常的内容。 Detail:空,但Detail元素可以用于把的异常信息传递给调用者。依据上面的分析,笔者将SOAPException进一步封装,代码如下:publicpublicenum{=Server=}param paramname="errorMessage">错误信息paramname="errorNumber">错误号paramname="errorSource">错误源paramname="code">异常类型publicSOAPExceptionstringstringerrorNumber,stringerrorSource,FaultCodecode){XMLQualifiedNamefaultCodeLocationnull;//初始化限定switchswitch{case faultCodeLocation= casefaultCodeLocation=SOAPException.ServerFaultCode;}stringstrXMLOut=++"<ErrorNumber>"+errorNumber++"<ErrorSource>"+errorSource+++ xmlDoc=newXML //实例化SOAPExceptionSOAPExceptionsoapExnewSOAPException(errorMessage,uri, return }[WebMethod(Description[WebMethod(Description测试直接抛出异常{Info }publicpublicclass{publicstringErrorNumber=publicstringErrorMessage=publicstringErrorSource=SOAPExceptionInfo构造方publicSOAPExceptionInfo(SOAPException{ doc=newXML XMLNodecategoryNode=doc. this.ErrorNumber=categoryNode.SelectSingleNode("ErrorNumber").this.ErrorSource=categoryNode.SelectSingleNode("ErrorSource").}}WebServiceSOAPExceptionInfoSOAPException类的publicpublicvoid{WSDemoServicewsnewWSDemoService();//客户端调WebServices{ }catchSOAPException {SOAPExceptionInfosoapExInfo=newSOAPExceptionInfo(soapEx);thrownewSystem.Exception(soapExInfo.ErrorMessage);}}SOAPException类型SOAPException业务异常信息,可以对SOAPException进行封装,生成便于理解的业务异常信息。WebServiceWebServiceWebService最大的一个亮点,但是随之而来的安全问题也成为大家关注的焦点。IBM、微软公司等大型提供商一起提出了WS-Security面试题 请列举常见的WebService安全措WebService目前被企业所广泛应用。从应用的角度来看,WebService技术的确具有个企业不得不关注的问题。本小节将介绍几种常见的WebService安全措施。WS-Windows验证WS-SecurityWS-Security中定用于验证;X.509还使用现有的PKI进行密钥管理;XML加密和XML签名描述了XML消息内容的加密和签名方法;XML标准描述了为签名和加密而准备XML的方法。SSLWebService服务器与客户端之间的通信拥有更高级别的安全WebService应用,在考虑到企业自身的实力以及有限资源条件下。通常采用自定识别的方式进行简单有效的安全措施,这种方式的好处是开发周说明:无论采用何种WebService安全方案都要注意是否具备数据的 性、用户的验证、用户的、预防用户抵赖这5个条件。一下IBM、微软等公司的一些成功案例。本小节列举了WS-Security、配置SSL、SOAP标头验证、Windows验证这4种常见的安全措施。面试题 在WebService中如何采用Windows验证和WebService是一个开放的平台,针对企业级用户WebService的安全机制一直以来是多数公司关注的问题。本小节将主要应聘者在Intranet环境中WebService使用经验。验Windows验证验证就是为了证实发送方的,同样WebService验证的目的,也是为了一般可通过Windows验证来保证XMLWeb服务的安全性。若需要验证,请若要允许或特定的用户服务,请使用ASP.NET配置系统,或在服务文件本身中ACL。示例代码如下:<authentication<location<allow<allow <denyroles="BUILTIN\PowerXMLWebWindows用户运行的情况。一个简单的WebService。usingusingSystem.Web.Services;usingSystem;classSecurityService:{publicString{ 这个WebService方法}}WebService类提供两个属性:Username和Password。可以使用这两个属性指定凭据,并通过凭据连接到Web服务,必须将它们设置成Web服务的计算机或域上的有效Windows凭据。代码如下:<%@<%@ImportNamespace="SecurityService"<scriptlanguage="C#"publicvoidPage_Load(Objectsender,EventArgs{SecurityServicesnew 验证方案(如基本、简要、NTLM和 Mess

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论