Web Service的安全机制4969.docx
《Web Service的安全机制4969.docx》由会员分享,可在线阅读,更多相关《Web Service的安全机制4969.docx(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Web Serrvicce的安安全机制制一个 WWeb 应用程程序具有有的一个个重要部部分是:能够识识别用户户和控制制对资源源的访问问。确定定请求实实体身份份的行为为称为身身份验证证。通常常,用户户必须出出示凭据据(如名名称/密密码对)以以便进行行身份验验证。一一旦经过过验证的的标识可可用,就就必须确确定此标标识是否否可以访访问给定定的资源源。Web Serrvicce的安安全机制制主要从从两个方方面考虑虑, 一一个是利利用Wiindoows安安全机制制,另一一个就是是利用SSOAPP标头,下下面分别别进行讨讨论。一、 利用Wiindoows安安全机制制我们来做做一个实实验,首首先做一一个最简
2、简单的WWeb服服务程序序。 PuubliicFuuncttionn HeellooWorrld() AAsSttrinng HeellooWorrld = Helllo WorrldEndFFuncctioon完成以后后,打开开Intternnet服服务管理理器。 找到这这个服务务程序的的虚拟目目录,右右键,选选择“属性”。找到“目目录安全全性”选项卡卡。编辑辑“匿名访访问和验验证控制制”。 取消消“匿名访访问”和“集成WWinddowss验证”,选择择“基本验验证”。 好了,现现在如果果再想打打开这个个程序,就就会提示示用户名名和密码码,而这这个权力力是在服服务器上上设置的的。 现在我我们
3、来做做一个客客户程序序,这是是一个普普通的WWinddowss程序。添加Weeb引用用。 在输入入Webb Seerviice的的地址以以后,它它就会提提示你输输入用户户名和密密码,如如果不对对,你是是没有办办法调用用这个WWeb服服务的。 在输入入服务器器正确的的用户名名和密码码以后,你你就可以以使用了了。 现在做做一个BButtton来来调用远远程的方方法。PubllicCClasss FFormm1Inheeritts SSysttem.Winndowws.FFormms.FFormmDim a AAsNeew llocaalhoost.Serrvicce2()PrivvateeSubb
4、 Foorm11_Looad(ByVVal sennderr Ass Syysteem.OObjeect, ByyVall e As SSysttem.EveentAArgss) HHanddlessMyBBasee.LooadEndSSubPrivvateeSubb Buuttoon1_Cliick(ByVVal sennderr Ass Syysteem.OObjeect, ByyVall e As SSysttem.EveentAArgss) HHanddless Buuttoon1.CliickTry MMsgBBox(a.HHellloWoorldd)Catcch MMsgBBox(
5、请求求失败)EndTTryEndSSubEndCClasss你会发现现,运行行以后将将提示你你“运行失失败”,这就就是说,调调用这个个方法的的时候,还还要发送送这个服服务器的的用户名名和密码码上去。我们可以以采用这这个方法法来解决决:PrivvateeSubb Foorm11_Looad(ByVVal sennderr Ass Syysteem.OObjeect, ByyVall e As SSysttem.EveentAArgss) HHanddlessMyBBasee.Looada.CCreddenttialls获取取或设置置Webb服务客客户端身身份验证证的安全全凭据Sysstemm.N
6、eet.NNetwworkkCreedenntiaal为基基于密码码的验证证方案提提供凭据据 a.Creedenntiaals = NNew Sysstemm.Neet.NNetwworkkCreedenntiaal(Admminiistrratoor, )EndSSub 好了,现现在能正正常工作作了。C#代码码:usser1107.Serrvicce1 objj=neew uuserr1077.Seerviice11();privvateevoiid bbuttton11_Cllickk(obbjecct ssendder, Syysteem.EEvenntArrgs e)laabell1.
7、TTextt=obbj.HHellloWoorldd();privvateevoiid FFormm1_LLoadd(obbjecct ssendder, Syysteem.EEvenntArrgs e) objj.Crredeentiialss = neww Syysteem.NNet.NettworrkCrredeentiial(Addminnisttrattor, useer1007); 利用这这个方式式,可以以杜绝没没有权限限的用户户调用WWeb服服务。二、使用用 Sooap 标头自自定义身身份验证证和授权权 在 Innterrnett 上,您您可能需需要对 SQLL 数据据库执行行自
8、定义义身份验验证和授授权。在在这种情情况中,应应向服务务传递自自定义凭凭据(如如用户名名和密码码),并并让服务务自己处处理身份份验证和和授权。 将额外的的信息连连同请求求一起传传递给 XMLL Weeb 服服务的简简便方法法是通过过 SOOAP 标头。为为此,需需要在服服务中定定义一个个从 SSOAPPHeaaderr 派生生的类,然然后将服服务的公公共字段段声明为为该类型型。下面我们们通过一一个例子子来说明明这个问问题。首先做一一个Weeb服务务程序。在这个程程序里面面,需要要注意:服务中中的每个个 WeebMeethood 都都可以使使用 SSoappHeaaderr 自定定义属性性定义一
9、一组关联联的标头头。默认情况况下,标标头是必必需的,但但也可以以定义可可选标头头。SooapHHeadder 属性指指定公共共字段的的名称或或者 CClieent 或 SServver 类的属属性(本本标题中中称为 Heaaderrs 属属性)。在为输入入标头调调用方法法前,WWebSServvicee 设置置 Heeadeers 属性的的值;而而当方法法为输出出标头返返回时,WWebSServvicee 检索索该值。我们可以以先做一一个标头头类:PubllicCClasss AAuthhHeaaderrVB : IInheeritts SSoappHeaaderr它继承于于SoaapHeea
10、deer,然然后把它它声明成成一个对对象:Publlic sHeeadeer AAs AAuthhHeaaderrVB然后,所所有需要要标头控控制的方方法,都都需要在在前缀上上加上标标头声明明: PubbliccFunnctiion SeccureeMetthodd() AsSttrinng下面是具具体的程程序,当当然为了了简单,得得到客户户传过来来的用户户名和密密码以后后,我们们并不是是用数据据库处理理,而是是简单的的用一个个IF语语句处理理,但是是这种方方法,可可以扩大大成各种种情况:Impoortss Syysteem.WWeb.SerrviccesImpoortss Syysteem.
11、WWeb.Serrvicces.Prootoccolss _PubllicCClasss SServvicee1Inheeritts SSysttem.Webb.Seerviicess.WeebSeerviicePubllicCClasss AAuthhHeaaderrVB : Innherritss SooapHHeadderPubllic Useernaame AsSttrinngPubllic Passswoord AsSttrinngEndCClasssPubllic sHeeadeer AAs AAuthhHeaaderrVB PuubliicFuuncttionn Seecurre
12、Meethood() AssStrringgIf (sHeeadeer IIsNoothiing) ThhenRetuurn 错误误: 请提提供凭据据EndIIfDim usrr AssStrringg = sHeeadeer.UUserrnammeDim pwdd AssStrringg = sHeeadeer.PPasssworrdIf (AutthennticcateeUseer(uusr, pwwd) ThhenRetuurn 成功功: & usrr & , & pwddElseeRetuurn 错误误: 未能能通过身身份验证证EndIIfEndFFuncctioon Puubliic
13、Fuuncttionn HeellooWorrld() AAsSttrinngIf (sHeeadeer IIsNoothiing) ThhenRetuurn 错误误: 请提提供凭据据EndIIfDim usrr AssStrringg = sHeeadeer.UUserrnammeDim pwdd AssStrringg = sHeeadeer.PPasssworrdIf (AutthennticcateeUseer(uusr, pwwd) ThhenRetuurn 成功功: & 你好好,我的的世界ElseeRetuurn 错误误: 未能能通过身身份验证证EndIIfEndFFuncctio
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Web Service的安全机制4969 Service 安全 机制 4969
限制150内