1.我们实现一个用于身份验证的类,文件名MySoapHeader.cs
MySoapHeader类继承自System.Web.Services.Protocols.SoapHeader。且定义了两个成员变量,UserName和PassWord,还定义了一个用户认证的函数ValideUser。它提供了对UserName和PassWord检查的功能
1. using System;
2. using System.Data;
3. using System.Configuration;
4. using System.Web;
5. using System.Web.Security;
6. using System.Web.UI;
7. using System.Web.UI.HtmlControls;
8. using System.Web.UI.WebControls;
9. using System.Web.UI.WebControls.WebParts;
10. using System.Web.Services;
11. using System.Web.Services.Protocols;
12. ///
13. ///MySoapHeader 的摘要说明
14. ///
15. public class MySoapHeader:SoapHeader
16. {
17. public MySoapHeader()
18. {
19. //
20. //TODO: 在此处添加构造函数逻辑
21. //
22. }
23. public string UserName;
24. public string PassWord;
25. public bool ValideUser(string in_UserName, string in_PassWord)
26. {
27. if ((in_UserName == "zxq") && (in_PassWord == "123456"))
28. {
29. return true;
30. }
31. else
32. {
33. return false;
34. }
35. }
36. }
2.下面我们创建WebService.asmx WebService.cs代码如下:
1. using System;
2. using System.Collections;
3. using System.Web;
4. using System.Web.Services;
5. using System.Web.Services.Protocols;
6.
7. ///
8. ///WebService 的摘要说明
9. ///
10. [WebService(Namespace = "http://tempuri.org/")]
11. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
12. public class WebService : System.Web.Services.WebService
13. {
14.
15. public WebService()
16. {
17.
18. //如果使用设计的组件,请取消注释以下行
19. //InitializeComponent();
20. }
21. public MySoapHeader header; 定义用户身份验证类变量header
22. [WebMethod(Description = "用户验证测试")]
23. [System.Web.Services.Protocols.SoapHeader("header")]//用户身份验证的soap头
24. public string HelloWorld(string contents)
25. {
26. //验证是否有权访问
27. if (header.ValideUser(header.UserName, header.PassWord))
28. {
29. return contents + "执行了";
30. }
31. else
32. {
33. return "您没有权限访问";
34. }
35. }
36. }
来源:http://developer.51cto.com/art/200908/141829.htm