zoukankan      html  css  js  c++  java
  • 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

    添加引用成功后就可以调用了

  • 相关阅读:
    CF833B The Bakery (线段树+DP)
    NOIP 2017 时间复杂度 (模拟)
    NOI 2018 屠龙勇士 (拓展中国剩余定理excrt+拓展欧几里得exgcd)
    中国剩余定理(excrt) 模板
    后缀自动机 模板
    luogu P4248 [AHOI2013]差异
    luogu P3975 [TJOI2015]弦论
    luogu P4770 [NOI2018]你的名字
    luogu P3726 [AH2017/HNOI2017]抛硬币
    luogu P3722 [AH2017/HNOI2017]影魔
  • 原文地址:https://www.cnblogs.com/i-mengli/p/9638766.html
Copyright © 2011-2022 走看看