zoukankan      html  css  js  c++  java
  • 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("我是老王"));
        
        }
    }
    

      

  • 相关阅读:
    准备用协程模拟经典的生产者消费者
    重载操作符号
    对象池
    ssh加key
    oracle存储过程(PL/SQL)
    获取服务器ip地址
    【STL系列】结构体排序
    strtol sort snprintf snscanf strtok
    cxGrid动态创建带CheckBox列时遇到的问题...
    Windows2003 安装PostgreSQL9.0 UUID解决‘ERROR:无法载入程式库’问题
  • 原文地址:https://www.cnblogs.com/shikangjie/p/5691578.html
Copyright © 2011-2022 走看看