Web Service 三种身份验证方式-程序开发-红黑联盟 webservice三种规范
文章录入:王子责任编辑:dingkai1983 112
【字体:小 大】
Web Service 验证方式<一>SoapHeader验证
服务端代码:
注意第7行,需要加[SoapHeader("authHeader")] 特性。
1 public class GetDataList : System.Web.Services.WebService
2 {
3 public AuthHeader authHeader;
4
5
6 [WebMethod]
7 [SoapHeader("authHeader")]
8 public string GetBookList()
9 {
10 string xmlStr = string.Empty;
11 try
12 {
13
14 if (authHeader == null)
15 {
16 XmlDocument xmlDoc = new XmlDocument();
17 XmlDeclaration xmlDec;
18 xmlDec = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
19 XmlElement xmlEle = xmlDoc.CreateElement(null, "soapheader", null);
20 XmlAttribute xmlAtt = xmlDoc.CreateAttribute("allowView");
21 xmlAtt.InnerText = "true";
22 XmlElement xmlChild = xmlDoc.CreateElement(null, "status", null);
23 xmlChild.Attributes.Append(xmlAtt);
24 xmlChild.InnerText = "AuthHeader对象不存在";
25 xmlEle.AppendChild(xmlChild);
26 xmlDoc.AppendChild(xmlEle);
27
28 xmlStr = xmlDoc.InnerXml;
29
30 return xmlStr;
31 }
32 if (!authHeader.Verify())
33 {
34 XmlDocument xmlDoc = new XmlDocument();
35 XmlDeclaration xmlDec;
36 xmlDec = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
37 XmlElement xmlEle = xmlDoc.CreateElement(null, "soapheader", null);
38 XmlAttribute xmlAtt = xmlDoc.CreateAttribute("allowView");
39 xmlAtt.InnerText = "true";
40 XmlElement xmlChild = xmlDoc.CreateElement(null, "status", null);
41 xmlChild.Attributes.Append(xmlAtt);
42 xmlChild.InnerText = "验证失败";
43 xmlEle.AppendChild(xmlChild);
44 xmlDoc.AppendChild(xmlEle);
45
46 xmlStr = xmlDoc.InnerXml;
47
48 return xmlStr;
49 }
50
51 DataSet ds = new DataSet();
52 DataTable tb = new DataTable("BookList");
53 DataColumn dc0 = new DataColumn("Code", Type.GetType("System.String"));
54 DataColumn dc1 = new DataColumn("BookName", Type.GetType("System.String"));
55 DataColumn dc2 = new DataColumn("BookPrice", Type.GetType("System.Single"));
56 DataColumn dc3 = new DataColumn("UpdateTime", Type.GetType("System.DateTime"));
57
58
59 tb.Columns.Add(dc0);
60 tb.Columns.Add(dc1);
61 tb.Columns.Add(dc2);
62 tb.Columns.Add(dc3);
63
64 DataRow dr = tb.NewRow();
65 dr[0] = "c0001";
66 dr[1] = "世界地理";
67 dr[2] = "9.98";
68 dr[3] = DateTime.Now;
69 tb.Rows.Add(dr);
70
71 dr = tb.NewRow();
72 dr[0] = "c0002";
73 dr[1] = "世界历史";
74 dr[2] = "9.95";
75 dr[3] = DateTime.Now;
76 tb.Rows.Add(dr);
77
78 ds.Tables.Add(tb);
79 xmlStr = ds.GetXml();
80 }
81 catch (Exception ex)
82 {
83 xmlStr= ex.ToString();
84 }
85
86 return xmlStr;
87 }
88 }
89 }
客户端调用代码:
OA_WebService 添加web 引用时声明的命名空间。
1 protected void btnRun_Click(object sender, EventArgs e)
2 {
3 OA_WebService.GetDataList oaWebSerive = new OA_WebService.GetDataList();
4
5 OA_WebService.AuthHeader authHeader = new OA_WebService.AuthHeader();
6
7 authHeader.UserCode = "alpha";
8 authHeader.UserPwd = "123456";
9
10 oaWebSerive.AuthHeaderValue = authHeader;
11
12 string str = oaWebSerive.GetBookList();
13
14 Response.Write(str);
15 }
Web Service 验证方式<二>IIS验证(windows集成验证)
需要设置IIS“不允许匿名”访问并且需要选择“集成windows验证”,该验证方式服务端方法只有声明为[WebMethod]方法,不需要其他验证代码。
客户端调用代码,注意第5行,需要实例化webservice代理类的Credentials属性。
1 protected void Button1_Click(object sender, EventArgs e)
2 {
3 //将web服务程序设为集成windows身份验证,需要将匿名访问关闭
4 OA_WebService.GetDataListByIIS webService = new OA_WebService.GetDataListByIIS();
5 webService.Credentials = new System.Net.NetworkCredential("alpha", "123456");
6 string str = webService.GetBookList();
7 Response.Write(str);
8 }
Web Service 验证方式<三>Session验证
服务端代码,需要设置[WebMethod(EnableSession=true)] 允许Session。
1 public class GetDataListBySeesion : System.Web.Services.WebService
2 {
3 [WebMethod(EnableSession=true)]
4 public bool Verify(string userName,string pwd)
5 {
6 if (userName.Equals("alpha") && pwd.Equals("123456"))
7 {
8 Session["LoginStatus"] = true;
9 }
10 else
11 {
12 Session["LoginStatus"] = false;
13 }
14
15 return (bool)Session["LoginStatus"];
16 }
17
18 [WebMethod(EnableSession=true)]
19 public string GetBookList()
20 {
21 string xmlStr = string.Empty;
22 try
23 {
24
25 if (Session["LoginStatus"] == null || Session["LoginStatus"].Equals(false))
26 {
27 XmlDocument xmlDoc = new XmlDocument();
28 XmlDeclaration xmlDec;
29 xmlDec = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
30 XmlElement xmlEle = xmlDoc.CreateElement(null, "soapheader", null);
31 XmlAttribute xmlAtt = xmlDoc.CreateAttribute("allowView");
32 xmlAtt.InnerText = "true";
33 XmlElement xmlChild = xmlDoc.CreateElement(null, "status", null);
34 xmlChild.Attributes.Append(xmlAtt);
35 xmlChild.InnerText = "验证失败";
36 xmlEle.AppendChild(xmlChild);
37 xmlDoc.AppendChild(xmlEle);
38 xmlStr = xmlDoc.InnerXml;
39 return xmlStr;
40 }
41
42 DataSet ds = new DataSet();
43 DataTable tb = new DataTable("BookList");
44 DataColumn dc0 = new DataColumn("Code", Type.GetType("System.String"));
45 DataColumn dc1 = new DataColumn("BookName", Type.GetType("System.String"));
46 DataColumn dc2 = new DataColumn("BookPrice", Type.GetType("System.Single"));
47 DataColumn dc3 = new DataColumn("UpdateTime", Type.GetType("System.DateTime"));
48
49
50 tb.Columns.Add(dc0);
51 tb.Columns.Add(dc1);
52 tb.Columns.Add(dc2);
53 tb.Columns.Add(dc3);
54
55 DataRow dr = tb.NewRow();
56 dr[0] = "c0001";
57 dr[1] = "世界地理";
58 dr[2] = "9.98";
59 dr[3] = DateTime.Now;
60 tb.Rows.Add(dr);
61
62 dr = tb.NewRow();
63 dr[0] = "c0002";
64 dr[1] = "世界历史";
65 dr[2] = "9.95";
66 dr[3] = DateTime.Now;
67 tb.Rows.Add(dr);
68
69 ds.Tables.Add(tb);
70 xmlStr = ds.GetXml();
71 }
72 catch (Exception ex)
73 {
74 xmlStr = ex.ToString();
75 }
76
77 return xmlStr;
78 }
79 }
客户端代码,注意第5行,需要实例化代理类的CookieContainer属性。否则会验证失败。
1 protected void btnGoto_Click(object sender, EventArgs e)
2 {
3 OA_WebService.GetDataListBySeesion book = new OA_WebService.GetDataListBySeesion();
4
5 book.CookieContainer = new System.Net.CookieContainer();
6
7 if (book.Verify("alpha", "123456"))
8 {
9 string str = book.GetBookList();
10
11 Response.Write(str);
12 }
13 }
更多阅读
苹果手机找回教程 苹果手机程序开发
苹果手机找回教程——简介一个强大的苹果手机被偷寻回教程,请大家仔细阅读掌握作者的思路做到以不变应万变,找不回手机也要狠狠的惩罚小偷!这里我把全文分享出来:“6月初,心爱的小黑被小偷顺手牵羊。一个月来,身为报复心极强的天蝎,本着我
wifi身份验证出现问题怎么办 192.168.1.1
wifi身份验证出现问题怎么办——简介现在无线网很方便,智能手机,笔记本各种产品层出不群,当然了,没有网络的产品是不是不叫产品?可是,我们有时候就遇到一些烦心的事情,比如手机用wifi的时候,提示身份验证出现问题,是不是和烦人?下面为大家解决
连接wifi出现“身份验证出现问题”如何解决? wifi正在进行身份验证
连接wifi出现“身份验证出现问题”如何解决?——简介手机连接wifi时出现“身份验证出现问题”的解决方法连接wifi出现“身份验证出现问题”如何解决?——方法/步骤连接wifi出现“身份验证出现问题”如何解决? 1、打开手机“系统设置”
转载 VB程序开发电缆挂牌制作中的应用 电缆挂牌
原文地址:VB程序开发电缆挂牌制作中的应用作者:hgg_wjVB程序开发电缆挂牌制作中的应用【摘要】电缆敷设是电缆工程施工中的重头戏,从检测、入库、运输再到敷设,要规范每一道工序,项目部都严格做好记录。在检测阶段,安质员严格测试电缆的
AAA youku free download
简介AAA(Authentication AuthorizationAccounting)身份验证是Cisco开发的一个提供网络安全的系统。AAA系统的简称:认证(Authentication):验证用户的身份与可使用的网络服务;授权(Authorization):依据认证结果开放网络服务给用户;计