本文将介绍两种方法实现Web Service身份验证,方法一是通过通过SOAP Header身份验证,另一种是通过集成windows身份验证。

Web Service身份验证解决计划一:经过经过SOAP Header身份验证。

1.咱们完成一个用于身份验证的类,文件名MySoapHeader.cs

MySoapHeader类承继自System.Web.Services.Protocols.SoapHeader。且界说了两个成员变量,UserName和PassWord,还界说了一个用户认证的函数ValideUser。它供给了对UserName和PassWord查看的功用

  1. usingSystem;
  2. usingSystem.Data;
  3. usingSystem.Configuration;
  4. usingSystem.Web;
  5. usingSystem.Web.Security;
  6. usingSystem.Web.UI;
  7. usingSystem.Web.UI.HtmlControls;
  8. usingSystem.Web.UI.WebControls;
  9. usingSystem.Web.UI.WebControls.WebParts;
  10. usingSystem.Web.Services;
  11. usingSystem.Web.Services.Protocols;
  12. ///
  13. ///MySoapHeader的摘要阐明
  14. ///
  15. publicclassMySoapHeader:SoapHeader
  16. {
  17. publicMySoapHeader()
  18. {
  19. //
  20. //TODO:在此处增加结构函数逻辑
  21. //
  22. }
  23. publicstringUserName;
  24. publicstringPassWord;
  25. publicboolValideUser(stringin_UserName,stringin_PassWord)
  26. {
  27. if((in_UserName=="zxq")&&(in_PassWord=="123456"))
  28. {
  29. returntrue;
  30. }
  31. else
  32. {
  33. returnfalse;
  34. }
  35. }
  36. }

2.下面咱们创立WebService.asmx WebService.cs代码如下:

  1. usingSystem;
  2. usingSystem.Collections;
  3. usingSystem.Web;
  4. usingSystem.Web.Services;
  5. usingSystem.Web.Services.Protocols;
  6. ///
  7. ///WebService的摘要阐明
  8. ///
  9. [WebService(Namespace="http://tempuri.org/")]
  10. [WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
  11. publicclassWebService:System.Web.Services.WebService
  12. {
  13. publicWebService()
  14. {
  15. //假如运用规划的组件,请撤销注释以下行
  16. //InitializeComponent();
  17. }
  18. publicMySoapHeaderheader;////界说用户身份验证类变量header
  19. [WebMethod(Description="用户验证测验")]
  20. [System.Web.Services.Protocols.SoapHeader("header")]//用户身份验证的soap头
  21. publicstringHelloWorld(stringcontents)
  22. {
  23. //验证是否有权拜访
  24. if(header.ValideUser(header.UserName,header.PassWord))
  25. {
  26. returncontents+"执行了";
  27. }
  28. else
  29. {
  30. return"您没有权限拜访";
  31. }
  32. }
  33. }

3.客户端 创立个Default.aspx

  1. Default.aspx.cs代码
  2. usingSystem;
  3. usingSystem.Configuration;
  4. usingSystem.Data;
  5. usingSystem.Web;
  6. usingSystem.Web.Security;
  7. usingSystem.Web.UI;
  8. usingSystem.Web.UI.HtmlControls;
  9. usingSystem.Web.UI.WebControls;
  10. usingSystem.Web.UI.WebControls.WebParts;
  11. publicpartialclass_Default:System.Web.UI.Page
  12. {
  13. protectedvoidPage_Load(objectsender,EventArgse)
  14. {
  15. com.cn1yw.WebServicetest=newcom.cn1yw.WebService();//web引证(改成您自己的)
  16. com.cn1yw.MySoapHeaderHeader=newcom.cn1yw.MySoapHeader();//web引证创立soap头目标(改成您自己的)
  17. //设置soap头变量
  18. Header.UserName="zxq";
  19. Header.PassWord="123456";
  20. test.MySoapHeaderValue=Header;
  21. //调用web办法
  22. Response.Write(test.HelloWorld("我是强"));
  23. }
  24. }

Web Service身份验证解决计划二:经过集成windows身份验证。

1. 将Web服务程序设为集成windows身份验证

两种办法完成Web Service身份验证(web服务器的身份验证方式)  Web Service身份验证 第1张

2.客户端web引证代码

  1. Test.WebReference.Service1wr=newTest.WebReference.Service1();//生成webservice实例
  2. wr.Credentials=newNetworkCredential("guest","123");//guest是用户名,该用户需求有必定的权限
  3. lblTest.Text=wr.Add(2,2).ToString();//调用webservice办法

该计划的长处是比较安全,功能较好,缺陷是不便于移植,布置作业量大。

【修改引荐】

  1. ASP.NET运用Web Service上传文件
  2. JDK 6.0中web service的运用浅析
  3. MyEclipse开发和测验Web Service实例详解
  4. 在Spring中XFire构建Web Service
  5. Spring Web Services结构入门研讨
转载请说明出处
知优网 » 两种办法完成Web Service身份验证(web服务器的身份验证方式)

发表评论

您需要后才能发表评论