一、Webservice開發 1、在解決方案右鍵添加新建項目,新建空的web應用程式 2、在新建的項目右鍵添加新建項選擇web服務 3、這裡就是webservice 里的方法,可以添加自己需要的方法(方法前需要添加[WebMethod] 的特性,才可以被調用) 4、發佈iis即可訪問 5、需要身份驗 ...
一、Webservice開發
1、在解決方案右鍵添加新建項目,新建空的web應用程式
2、在新建的項目右鍵添加新建項選擇web服務
3、這裡就是webservice 里的方法,可以添加自己需要的方法(方法前需要添加[WebMethod] 的特性,才可以被調用)
4、發佈iis即可訪問
5、需要身份驗證的webservice
5.1 SOAP Header身份驗證
在webservice里添加如下類
public class MySoapHeader : SoapHeader { private string strUserName = string.Empty; private string strPassWord = string.Empty; public MySoapHeader() { } public MySoapHeader(string username, string password) { this.strUserName = username; this.strPassWord = password; } #region 構造 /// <summary> /// 用戶名 /// </summary> public string UserName { get { return strUserName; } set { strUserName = value; } } /// <summary> /// 密碼 /// </summary> public string PassWord { get { return strPassWord; } set { strPassWord = value; } } #endregion #region 檢測是否正確登錄 /// <summary> /// 檢測是否正確登錄 /// </summary> /// <returns></returns> public bool ValideUser(out string msg ) { msg = ""; if (strUserName == "admin" && strPassWord == "123456") //在這裡設置身份驗證的賬號和密碼 { return true; } else { msg = "您無權調用次服務,請聯繫管理員!"; return false; } } #endregion }
在添加方法的時候添加如下代碼
public MySoapHeader header = new MySoapHeader (); ////定義用戶身份驗證類變數header [System.Web.Services.Protocols.SoapHeader("header")] [WebMethod] public string GetUserName(string userID) { string msg = ""; if (!header.ValideUser(out msg)) //驗證 { return msg; }
var data = new DALwbstest.UuserOP().GetUser(userID); if (data != null) { return data.UsernameCN; } else { return "沒有此人"; } }
調用的時候就需要賬號密碼驗證,代碼如下
WebReference.Npomwbs webClient = new Npomwbs(); MySoapHeader head = new MySoapHeader (); head.UserName = "admin"; //在webservice里設置的賬號和密碼 head.PassWord = "123456"; webClient.MySoapHeaderValue = head; string name = webClient.GetUserName(txtID.Text); //調用需要驗證的方法
5.2 windows身份驗證
在webservice發佈iis的時候設置如下,添加訪問該webservice需要的賬戶和密碼
身份驗證設置成windows身份驗證
調用的時候就需要賬號密碼驗證,否則會提示沒有授權, 添加如下代碼
WebReference.Npomwbs webClient = new Npomwbs(); webClient.Credentials = new System.Net.NetworkCredential("admin","123456"); //這裡就是你剛填寫的賬號和密碼 string name = webClient.GetUserName(txtID.Text); // 調用方法
二、Webservice引用
1、添加Webservice引用
在項目上右鍵添加服務引用
在高級里添加web引用,在彈出的框里輸入你發佈的webservice地址,點右側箭頭,點擊添加引用,添加引用成功
2、調用webservice
添加引用成功後就可以調用了