zoukankan      html  css  js  c++  java
  • WebService通过SOAP头进行身份验证

    转:

    - 幸福小屋

    1、自定义soapheader
    namespace WebService2
    {
        /// <summary>
        /// Service1 的摘要说明
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        //[ToolboxItem(false)]
        // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
        // [System.Web.Script.Services.ScriptService]
        public class Service1 : System.Web.Services.WebService
        {
            public SecurityHeader currentUser;

            public Service1()
            {
                //如果使用设计的组件,请取消注释以下行
                //InitializeComponent();
            }
            [WebMethod, SoapHeader("currentUser")]
            public string GetResult(string queryString)
            {
                if (ValidateUser(currentUser.UserName, currentUser.UserPass))
                {
                    return queryString;
                }
                else
                {
                    return "您不能使用该服务";
                }
            }
           //判断逻辑
            public bool ValidateUser(string user, string pass)
            {
                if (user.Equals("user") && pass.Equals("user"))
                    return true;
                else
                    return false;
            }
        }
        //继承SoapHeader
        public class SecurityHeader : System.Web.Services.Protocols.SoapHeader
        {
            public string UserName;
            public string UserPass;
        }
    }
    2、客户端调用web服务,现将webService引用到客户端程序
     private void button1_Click(object sender, EventArgs e)
            {
                //先定义soapheader
                Text_WebService.localhost.SecurityHeader header = new Text_WebService.localhost.SecurityHeader();

                header.UserName =textBox1.Text;
                header.UserPass =textBox2.Text;

                Text_WebService.localhost.GetResultRequest service = new Text_WebService.localhost.GetResultRequest();
                service.SecurityHeader =header;

                Text_WebService.localhost.Service1SoapClient result = new Text_WebService.localhost.Service1SoapClient();
                //result.GetResult(header, "123")
               //调用服务器端的方法
                MessageBox.Show(result.GetResult(header, "123"));
            }

  • 相关阅读:
    64945e3dtw1dii6vfdr19j.jpg(PNG 图像,1497x929 像素)
    软题库
    信管网
    Windows DNA_百度百科
    解释一下关系数据库的第一第二第三范式?
    扩大高校毕业生就业见习补贴范围_网易新闻
    中国计算机技术职业资格网 | 首页
    2016年下半年信息系统项目管理师真题及答案_信息系统项目管理师历年真题及权威答案_信息系统项目管理师试题及模拟题_软考考试题库_希赛网
    杭州市2016-2017年度跨境电商产业紧缺人才需求目录
    计算机技术与软件专业技术资格(水平)考试_百度百科
  • 原文地址:https://www.cnblogs.com/guo0/p/1740071.html
Copyright © 2011-2022 走看看