• WebService基于SoapHeader实现安全认证(二)


    支持通过Http请求方法调用webservice,同时支持SoapHeader验证。

    using Globalegrow.Common;
    using Globalegrow.Model;
    using System.Web;
    using System.Web.Services.Protocols;
    
    namespace Globalegrow.Service
    {
        /// <summary>
        /// 自定义SoapHeader类。
        /// </summary>
        public class Certificate : SoapHeader
        {
            private static ServiceConfig M_ServiceConfig;
    
            /// <summary>
            /// 构造函数
            /// </summary>
            public Certificate()
            {
                //=>用于处理Http请求方式调用WebService服务所需要验证的SoapHeader信息。
                this.UserName = HttpContext.Current.Request["UserName"];
                this.PassWord = HttpContext.Current.Request["PassWord"];
            }
    
            /// <summary>
            /// 静态构造函数
            /// </summary>
            static Certificate()
            {
                //=>创建Certificate类的实例时,为AppContext.ServiceConfig 赋值
                M_ServiceConfig = ServiceConfigUtility.Load();
                AppContext.ServiceConfig = M_ServiceConfig;
            }
    
            /// <summary>
            /// 用户名
            /// </summary>
            public string UserName { get; set; }
    
            /// <summary>
            /// 密码
            /// </summary>
            public string PassWord { get; set; }
    
            /// <summary>
            /// 用户验证
            /// </summary>
            public bool IsVaild(out string message)
            {
                string _UserName = M_ServiceConfig.WebServiceTokenAccount;
                string _PassWord = M_ServiceConfig.WebServiceTokenPassword;
                if (this.UserName == _UserName && this.PassWord == _PassWord)
                {
                    message = "";
                    return true;
                }
                else
                {
                    message = "对不起,您没有权限调用此服务!";
                    return false;
                }
            }
        }
    }

     调用:

    http://192.168.3.41:8888/PermissionService/PermissionService.asmx/GetAuthUserByRoleID?UserName=admin&PassWord=admin&roleid=11
  • 相关阅读:
    Linux的ftp和www的服务器在虚拟机上的搭建
    Android中ViewPager
    Vue学习中踩的坑
    MySQL性能优化
    从Java内存模型讲双重检查锁原理
    JAVA8新特性学习
    JAVA中使用openoffice将Excel转PDF再转图片功能实现
    netty自定义协议上传
    poi-tl生成Word
    gitlab搭建
  • 原文地址:https://www.cnblogs.com/51net/p/4276596.html
Copyright © 2020-2023  润新知