• Web Service身份验证


    Web Service是政府,企业,个人提供的在线应用服务,其他公司、软件都能通过Internet来访问并使用服务。针对于有些公司某些数据只允许授权的企业或人使用,所以我们需要进行身份验证

               第一种方式:在Web Service引入SoapHeader

                     1.如下图,我们实现一个用于实现身份验证的类MySoapHeader,定义两个成员变量(UserName和Password),定义函数ValideUser用来检测使用服务的程序的Soap标头的数据是否被授权使用服务

        //实现一个用来验证身份的类
        public class MySoapHeader:SoapHeader
        {
            public MySoapHeader()
            { 
                //
                //   TODO:在此添加构造函数
                //
            }
            public string UserName;//用户名
    
            public string Password;//密码
    
            /// <summary>
            /// 判断用户名和密码是否正确
            /// </summary>
            /// <param name="username"></param>
            /// <param name="password"></param>
            /// <returns></returns>
            public bool ValideUser(string username, string password)
            {
                if ((username == "admin") && (password == "admin"))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
    

      

                2.创建Verification.asmx。

        

        public class Verification : System.Web.Services.WebService
        {
            public MySoapHeader header;  //定义用户身份验证变量header
    
    
            [WebMethod(Description="用户验证测试")]
            [System.Web.Services.Protocols.SoapHeader("header")]   //用户身份验证的Soap头
            public string HelloWorld(string contents)
            {
                if (header.ValideUser(header.UserName, header.Password))
                {
                    return contents + "—执行了";
                }
                else
                {
                    return "你没有权限访问!";
                }
            }
        }
    

         3.创建一个客户端—WebForm的页面

              

    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            VerificationServer.Verification verTest = new VerificationServer.Verification();//添加web引用
    
            VerificationServer.MySoapHeader header = new VerificationServer.MySoapHeader();//web引用创建soap头对象
    
            //设置soap头部变量
            header.UserName = "admin";  //用户名
    
            header.Password = "admin";  //密码
    
            verTest.MySoapHeaderValue = header;
    
            Response.Write(verTest.HelloWorld("我是老王"));
        
        }
    }
    

      

  • 相关阅读:
    一般图的最大匹配-带花树算法
    Codeforces703D-Mishka and Interesting sum-离线树状数组
    HDU4578-代码一点都不长的线段树
    AOJ.综合训练.2016-12-1
    AOJ.综合训练.2016-12-1
    队列的实现
    队列的实现
    栈的实现
    栈的实现
    贪心算法总结
  • 原文地址:https://www.cnblogs.com/shikangjie/p/5691578.html
Copyright © 2020-2023  润新知