• 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;
    }

  • 相关阅读:
    性格-汉语-词语:坚忍
    汉语-词语:坚强
    品质-汉语-成语:坚持不懈
    was系统错误日志大量出现标识符缺失
    【iOS】UIWebView的HTML5扩展之canvas篇
    OA权限树搭建 代码
    linux下的环境文件设置说明
    怎样把多个Android Project打包成一个APK
    nyoj43 24 Point game(DFS)
    【西祠日志】【07】努力努力,找资料,思考,怎么做asp图片上传
  • 原文地址:https://www.cnblogs.com/hcfalan/p/845327.html
Copyright © 2020-2023  润新知