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

  • 相关阅读:
    WindowsPhone7 经典3D游戏《刺客信条》评测
    WPF案例 — 展厅触摸屏展示系统
    Silverlight三维柱状图3D饼图的Silverlight图表组件案例
    应聘Silverlight讲师(全职或兼职均可)
    WPF案例之生产线控制器管理系统
    Silverlight 5 Beta 版发布日期确定
    《银光志Silverlight 3.0开发详解与最佳实践》发行第三版总销量过万册
    微软Silverlight5发布会提供线上注册
    Silverlight WebOS案例2.0版本(基于Silverlight4开发的Web操作系统)
    长年承接WP7游戏和WP7软件外包
  • 原文地址:https://www.cnblogs.com/hcfalan/p/845327.html
Copyright © 2011-2022 走看看