使用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");

转载于:https://www.cnblogs.com/hejunrex/archive/2011/04/28/2031969.html

WebService简单验证:SoapHeader相关推荐

  1. WebService 简单安全验证

    WebService 简单安全验证 2011-03-04 10:34 by Vincent.Studio, 8158 阅读, 0 评论, 收藏, 编辑 最近新接了一个需要调用第三方WebService ...

  2. .Net WebService简单学习

    一.什么是WebService Web Service是一个使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式的交互操作的应用程序. Web ...

  3. WebService基于SoapHeader实现安全认证[webservice][.net][安全][soapheader]

    摘 自: http://blog.sina.com.cn/s/blog_72b7a82d0100yyp8.html WebService基于SoapHeader实现安全认证[webservice][. ...

  4. WebService客户端添加SOAPHeader信息

    WebService客户端添加SOAPHeader信息 通过JAXBContext创建Marshaller对头信息进行解析为dom,获取WSBindingProvider,使用Headers.crea ...

  5. 黑马lavarel教程---6、简单验证

    黑马lavarel教程---6.简单验证 一.总结 一句话总结: 1.验证的最简单实例:$request的validate方法,验证通过可以继续进行,验证失败就重定向 2.中文提示可以用中文语言包 3 ...

  6. Dagger2集成之环境配置及简单验证

    1.1 配置Dagger2依赖关系 目前android应用的代码管理大多采用Gradle来做,但是在集成Dagger2的过程中,Gradle的版本与Dagger2的依赖方式存在一定的相关性,在网上一些 ...

  7. JS简单验证密码强度

    <input type="password" id="password" value=""/><button id=&qu ...

  8. 1、nifi-1.9.2介绍、单机部署及简单验证

    Apache NiFi系列文章 1.nifi-1.9.2介绍.单机部署及简单验证 2.NIFI应用示例-GetFile和PutFile应用 3.NIFI处理器介绍.FlowFlie常见属性.模板介绍和 ...

  9. 1、hadoop3.1.4简单介绍及部署、简单验证

    Hadoop系列文章目录 1.hadoop3.1.4简单介绍及部署.简单验证 2.HDFS操作 - shell客户端 3.HDFS的使用(读写.上传.下载.遍历.查找文件.整个目录拷贝.只拷贝文件.列 ...

最新文章

  1. 一张图看懂中科大、国科大、中科院、社科院、上科大之间的关系
  2. 数仓dw怎么建_网易严选如何打造数仓规范和评价体系
  3. Web测试要点 做移动端的测试,也做web端的测试,甚至后面桌面端的测试和后台的测试也做了,基本上把我们产品各个端都玩了一轮...
  4. Ubuntu 下查看CUDA和cuDNN 版本
  5. ASP.NET(c#)常用类函数
  6. python冒泡排序实验报告_python中的冒泡排序
  7. ubuntu 应用程序菜单_Ubuntu智能手机,塔式无人机飞行控制应用程序等
  8. 递归——数的计算(洛谷 P1028)
  9. ASP.NET2.0快速入门--高级数据方案(3)
  10. 如何正确的更换网站服务器?
  11. oracle 实时负载查询,Oracle并行查询
  12. windows查看usb信息命令_ADB命令你知道多少?ADB冻结系统应用?
  13. Trick(十五)—— 树结构如何判断一个节点是内部节点(internal node)还是叶子节点(leaf node)
  14. ListView多种item注意以及自己出现的莫名其妙的错误
  15. vb红绿灯自动切换_vb教程之用VB编写“红绿灯”程序
  16. UISwitch的大小
  17. 华为HCNA之配置RIPv2认证实验
  18. 事件日志中出现TKK: 更新 TKK 失败,请检查网络连接,翻译插件用不了
  19. 如何用Python制作学术动图?(数据+代码)
  20. 报错ConnectionString属性尚未初始化。

热门文章

  1. benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明
  2. oom 如何避免 高并发_【转载】如何避免OOM?看Greenplum的最佳实践
  3. Semaphore(信号量)
  4. LeetCode-笔记-523. 连续的子数组和
  5. Zookeeper 的典型应用场景场景
  6. UIBezierPath介绍
  7. 这几款嵌入式软件测试工具,好用到起飞~
  8. rehl7.3部署K8s集群
  9. 15、Kubernetes集群资源监控
  10. 向量时钟同步算法_如何让超级下载算法在不同CortexM内核下也能跑?