zoukankan      html  css  js  c++  java
  • WebService简单验证:SoapHeader

    使用soaphead方法可以在webservice的请求中增加头部信息,当有人调用我们的webservice时,可以通过查询这个请求的头部信息并验证来防止该软件以外的程序调用webservice

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Data;

    using GB.BLL;
    using GB.Utility;
    using System.Web.Services.Protocols;


    public class AuthHeaderGB : SoapHeader
    {
        
    public string Username;
        
    public string Password;
    }  


    /// <summary>
    ///UserService 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo 
    = WsiProfiles.BasicProfile1_1)]
    //若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
     [System.Web.Script.Services.ScriptService]
    public class UserService : System.Web.Services.WebService
    {

        
    public AuthHeaderGB sHeader;   


        
    public UserService()
        {

            
    //如果使用设计的组件,请取消注释以下行 
            
    //InitializeComponent(); 
        }


        [WebMethod(Description 
    = "获取用户信息")]
        [SoapHeader(
    "sHeader")]   
        
    public DataTable GetCompanyInfo(string userName)
        {
            
    if (sHeader == null)
            {
                
    return null;
            }
            
    else
            {
                
    string usr = sHeader.Username;
                
    string pwd = sHeader.Password;

                
    if (AuthenticateUser(usr, pwd))
                {
                    CompanyBLL companyBLL 
    = new CompanyBLL();
                    DataTable dt 
    = companyBLL.GetCompanyInfo(userName);
                    
    return dt;
                }
                
    else
                {
                    
    return null;
                }
            }

            
        }

        
    private bool AuthenticateUser(string usr, string pwd)
        {
            
    if ((usr != null&&pwd != null&& (usr=="gbwebservice"&&pwd=="gbpwd"))
            {
                
    return true;
            }
            
    return false;
        }   

    }

    调用

    WebService webservice = new WebService();
    AuthHeaderGB auth 
    = new AuthHeaderGB();
    auth.Username 
    = "gbwebservice";
    auth.Password 
    = "gbpwd";
    webservice.AuthHeaderGBValue 
    = auth;
    DataTable dt
    =auth.GetCompanyInfo("test");
  • 相关阅读:
    Windows下_findnext()异常问题
    Windows 10正式版官方原版镜像!(备忘)
    qt中出现error: C2059: 语法错误:“namespace”未定义等大量错误的问题
    linux shell的简单思维导图
    高仿花生壳客户端程序(qt)
    公告
    修改注册表自定义键盘快捷键
    斜率优化
    元旦老人与丛林
    CF 1466G Song of the Sirens
  • 原文地址:https://www.cnblogs.com/hejunrex/p/2031969.html
Copyright © 2011-2022 走看看