文档详情

Web Service的安全机制_原创文档.pdf

发布:2024-08-11约9.02千字共26页下载文档
文本预览下载声明

WebService的平安机制

一个Web应用程序具有的一个重要局部是:能够识别用户和控制对资源的访问。确定

请求实体身份的行为称为身份验证。通常,用户必须出示凭据〔如名称/密码对〕以便进行

身份验证。一旦经过验证的标识可用,就必须确定此标识是否可以访问给定的资源。

WebService的平安机制主要从两个方面考虑,一个是利用Windows平安机制,另一

个就是利用SOAP标头,下面分别进行讨论。

一、利用Windows平安机制

我们来做一个实验,首先做一个最简单的Web效劳程序。

WebMethod()PublicFunctionHelloWorld()AsStringString

EndFunction

完成以后,翻开Internet效劳管理器。

找到这个效劳程序的虚拟目录,右键,选择“属性〞。

找到“目录平安性〞选项卡。编辑“匿名访问和验证控制〞。

取消“匿名访问〞和“集成Windows验证〞,选择“根本验证〞。

好了,现在如果再想翻开这个程序,就会提示用户名和密码,而这个权力是在效劳器上

设置的。

现在我们来做一个客户程序,这是一个普通的Windows程序。

添加Web引用。

在输入WebService的地址以后,它就会提示你输入用户名和密码,如果不对,你是没

有方法调用这个Web效劳的。

在输入效劳器正确的用户名和密码以后,你就可以使用了。

现在做一个Button来调用远程的方法。

PublicClassForm1

InheritsSy

DimaAsNewlocalhost.Service2()

PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles

MyBase.Load

EndSub

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles

Try

MsgBox(a.HelloWorld)

CatchCatch

请求失败请求失败

EndTry

EndSub

EndClass

你会发现,运行以后将提示你“运行失败〞,这就是说,调用这个方法的时候,还要

发送这个效劳器的用户名和密码上去。

我们可以采用这个方法来解决:

PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles

MyBase.Load

获取或设置Web效劳客户端身份验证的平安凭据

为基于密码的验证方案提供凭据

a.Credentials=NewNew

EndSub

好了,现在能正常工作了。

C#

user107.Service1obj=newuser107.Service1();

privatevoidbutton1_Click(objectsender,System.EventArgse)

{

label1.Text=obj.HelloWorld();

}

privatevoidForm1_Load(objectsender,System.EventArgse)

{

obj.Credentials=newnew

}

利用这个方式,可以杜绝没有权限的用户调用Web效劳。

二、使用Soap标头自定义身份验证和授权

Intern

显示全部
相似文档