电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Web Service的安全机制VIP免费

Web Service的安全机制_第1页
1/26
Web Service的安全机制_第2页
2/26
Web Service的安全机制_第3页
3/26
WebService的安全机制一个Web应用程序具有的一个重要部分是:能够识别用户和控制对资源的访问。确定请求实体身份的行为称为身份验证。通常,用户必须出示凭据(如名称/密码对)以便进行身份验证。一旦经过验证的标识可用,就必须确定此标识是否可以访问给定的资源。WebService的安全机制主要从两个方面考虑,一个是利用Windows安全机制,另一个就是利用SOAP标头,下面分别进行讨论。一、利用Windows安全机制我们来做一个实验,首先做一个最简单的Web服务程序。PublicFunctionHelloWorld()AsStringHelloWorld="HelloWorld"EndFunction完成以后,打开Internet服务管理器。找到这个服务程序的虚拟目录,右键,选择“属性”。找到“目录安全性”选项卡。编辑“匿名访问和验证控制”。取消“匿名访问”和“集成Windows验证”,选择“基本验证”。好了,现在如果再想打开这个程序,就会提示用户名和密码,而这个权力是在服务器上设置的。现在我们来做一个客户程序,这是一个普通的Windows程序。添加Web引用。在输入WebService的地址以后,它就会提示你输入用户名和密码,如果不对,你是没有办法调用这个Web服务的。在输入服务器正确的用户名和密码以后,你就可以使用了。现在做一个Button来调用远程的方法。PublicClassForm1InheritsSystem.Windows.Forms.FormDimaAsNewlocalhost.Service2()PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadEndSubPrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickTryMsgBox(a.HelloWorld)CatchMsgBox("请求失败")EndTryEndSubEndClass你会发现,运行以后将提示你“运行失败”,这就是说,调用这个方法的时候,还要发送这个服务器的用户名和密码上去。我们可以采用这个方法来解决:PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load'a.Credentials获取或设置Web服务客户端身份验证的安全凭据'System.Net.NetworkCredential为基于密码的验证方案提供凭据a.Credentials=NewSystem.Net.NetworkCredential("Administrator","")EndSub好了,现在能正常工作了。C#代码:user107.Service1obj=newuser107.Service1();privatevoidbutton1_Click(objectsender,System.EventArgse){label1.Text=obj.HelloWorld();}privatevoidForm1_Load(objectsender,System.EventArgse){obj.Credentials=newSystem.Net.NetworkCredential("Administrator","user107");}利用这个方式,可以杜绝没有权限的用户调用Web服务。二、使用Soap标头自定义身份验证和授权在Internet上,您可能需要对SQL数据库执行自定义身份验证和授权。在这种情况中,应向服务传递自定义凭据(如用户名和密码),并让服务自己处理身份验证和授权。将额外的信息连同请求一起传递给XMLWeb服务的简便方法是通过SOAP标头。为此,需要在服务中定义一个从SOAPHeader派生的类,然后将服务的公共字段声明为该类型。下面我们通过一个例子来说明这个问题。首先做一个Web服务程序。在这个程序里面,需要注意:服务中的每个WebMethod都可以使用SoapHeader自定义属性定义一组关联的标头。默认情况下,标头是必需的,但也可以定义可选标头。SoapHeader属性指定公共字段的名称或者Client或Server类的属性(本标题中称为Headers属性)。在为输入标头调用方法前,WebService设置Headers属性的值;而当方法为输出标头返回时,WebService检索该值。我们可以先做一个标头类:PublicClassAuthHeaderVB:InheritsSoapHeader它继承于SoapHeader,然后把它声明成一个对象:PublicsHeaderAsAuthHeaderVB然后,所有需要标头控制的方法,都需要在前缀上加上标头声明:PublicFunctionSecureMethod()AsString下面是具体的程序,当然为了简单,得到客户传过来的用户名和密码以后,我们并不是用数据库处理,而是简单的用一个IF语句处理,但是这种方法,可以扩大成各种情况:ImportsSystem.Web.ServicesImportsSystem.Web.Services.Protocols

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Web Service的安全机制

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群