zoukankan      html  css  js  c++  java
  • IssueVision 之WebService安全篇

    一、Web Service端的设计

    先从SoapHeader继承一个自定义类CredentialSoapHeader,该类包含用户名和密码:
    public class CredentialSoapHeader : SoapHeader
    {
        
    public string Username
        
    {
            
    get  }
            
    set  }
        }


        
    public string Password
        
    {
            
    get  }
            
    set  }
        }

    }

    在WebService类里面创建一个属性Credentials,类型为CredentialSoapHeader:
    public class IssueVisionServices : WebService
    {
        
    // custom SOAP header to pass credentials
        public CredentialSoapHeader Credentials
        
    {
            
    get  }
            
    set  }
        }

        
    }

    在WebMethod的方法上使用SoapHeader标识,成员名称为"Credentials":
    [WebMethod(Description="Returns the lookup tables for IssueVision.")]
    [SoapHeader(
    "Credentials")]
    public IVDataSet GetLookupTables()
    {
        SecurityHelper.VerifyCredentials(
    this);
        
    return new IVData().GetLookupTables();
    }

    public class SecurityHelper 
    {
        
    // verifies the clients credentials
        public static void VerifyCredentials(IssueVisionServices service) 
        {
            String userName 
    = service.Credentials.Username;
            String password 
    = service.Credentials.Password;
            
    // 按照userName 和 password 进行授权验证
            
        }
    }

    二、客户端对Web Service的调用

    private static IssueVisionServices GetWebServiceReference()
    {
        
    return GetWebServiceReference(UserSettings.Instance.Username, UserSettings.Instance.Password);
    }


    private static IssueVisionServices GetWebServiceReference(string username, string password)
    {
        IssueVisionServices dataService 
    = new IssueVisionServices();
            
        
    //<ReplaceWithWse>
        CredentialSoapHeader header = new CredentialSoapHeader();
        header.Username 
    = username;
        header.Password 
    = password;
        dataService.CredentialSoapHeaderValue 
    = header;
        
    //</ReplaceWithWse>
                
        InitWebServiceProxy(dataService);
                
        
    return dataService;
    }

  • 相关阅读:
    Jeecg代码搬砖圣地第五篇(页面布局)
    Jeecg代码搬砖圣地第四篇(页面标签规则)
    Jeecg代码搬砖圣地第三篇(Excel导入导出)
    小程序前端
    javascript 新版本的语法(ECS6)
    nginx下用getallheaders
    wampser 配置debug需要的参数
    Suhosin(php的保护工具)
    php中empty使用的情况
    写出健壮的代码
  • 原文地址:https://www.cnblogs.com/hcfalan/p/845327.html
Copyright © 2011-2022 走看看