WebService SoapHeader使用.docx_第1页
WebService SoapHeader使用.docx_第2页
WebService SoapHeader使用.docx_第3页
WebService SoapHeader使用.docx_第4页
WebService SoapHeader使用.docx_第5页
全文预览已结束

下载本文档

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

文档简介

要以安全的方式访问Web服务方法,可以考虑以下安全措施: 是谁调用?-SoapHeader身份认证。来自哪里?-访问IP认证。加密传输 -SSL安全访问。这些安全保护措施常常是配合使用的。7.9.1 通过SoapHeader来增强Web Service的安全性通过SoapHeader我们可以让具有指定用户口令的用户来访问我们的Web服务接口。(完整代码示例位置:光盘codech07WebAppClientWebForm-SoapHeader.aspx)1Web Service实现步骤(1)定义自己的SoapHeader派生类。1. / 2. /定义自己的SoapHeader派生类 3. / 4. publicclassMySoapHeader:System.Web.Services.Protocols.SoapHeader 5. 6. privatestring_UserID=string.Empty; 7. privatestring_PassWord=string.Empty; 8. / 9. /构造函数 10. / 11. publicMySoapHeader() 12. 13. 14. / 15. /构造函数 16. / 17. /用户ID 18. /加密后的密码 19. publicMySoapHeader(stringnUserID,stringnPassWord) 20. 21. Initial(nUserID,nPassWord); 22. 23. #region属性 24. / 25. /用户名 26. / 27. publicstringUserID 28. 29. getreturn_UserID; 30. set_UserID=value; 31. 32. / 33. /加密后的密码 34. / 35. publicstringPassWord 36. 37. getreturn_PassWord; 38. set_PassWord=value; 39. 40. #endregion 41. #region方法 42. / 43. /初始化 44. / 45. /用户ID 46. /加密后的密码 47. privatevoidInitial(stringnUserID,stringnPassWord) 48. 49. UserID=nUserID; 50. PassWord=nPassWord; 51. 52. / 53. /验证用户名密码是否正确 54. / 55. /用户ID 56. /加密后的密码 57. /返回的错误信息 58. /用户名密码是否正确 59. privateboolIsValid(stringnUserID,stringnPassWord,outstringnMsg) 60. 61. nMsg=; 62. try63. 64. /判断用户名密码是否正确 65. if(nUserID=admin&nPassWord=admin) 66. 67. returntrue; 68. 69. else70. 71. nMsg=对不起,你无权调用此Web服务。; 72. returnfalse; 73. 74. 75. catch76. 77. nMsg=对不起,你无权调用此Web服务。; 78. returnfalse; 79. 80. 81. / 82. /验证用户名密码是否正确 83. / 84. /用户名密码是否正确 85. publicboolIsValid(outstringnMsg) 86. 87. returnIsValid(_UserID,_PassWord,outnMsg); 88. 89. #endregion 90. (2)添加基于SoapHeader验证的Web Service接口方法:1. / 2. /通过SoapHeader来增强WebService的安全性 3. / 4. WebService(Namespace=/) 5. WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1) 6. ToolboxItem(false) 7. publicclassWebService_Soap:System.Web.Services.WebService 8. 9. /声明Soap头实例 10. publicMySoapHeadermyHeader=newMySoapHeader(); 11. 12. /普通方法,不需要SoapHeader验证 13. WebMethod(Description=根据产品编号查询产品的价格) 14. publicstringGetProductPrice(stringProductId) 15. 16. Productspro=newProducts(); 17. returnpro.GetPrice(ProductId); 18. 19. /需要SoapHeader验证 20. SoapHeader(myHeader) 21. WebMethod(Description=根据产品编号查询产品的价格,EnableSession=true) 22. publicstringGetProductPrice2(stringProductId) 23. 24. stringmsg=; 25. /验证是否有权访问 26. if(!myHeader.IsValid(outmsg) 27. 28. returnmsg;/返回错误信息 29. 30. Productspro=newProducts(); 31. returnpro.GetPrice(ProductId); 32. 33. 2客户端调用具有SoapHeader的Web Service 1. /创建myService对象 2. ProductServiceSoap.WebService_Soapservice= 3. 4. newProductServiceSoap.WebService_Soap(); 5. /创建soap头对象 6. ProductServiceSoap.MySoapHeaderheader=newProductServiceSoap.MySoapHeader(); 7. /设置soap头变量 8. header.PassWord=admin; 9. header.UserID=admin; 10. servi

温馨提示

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

评论

0/150

提交评论