Webservice开发、引用
一、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
添加引用成功后就可以调用了