阅读目录

  一:前言

  二:SOAPHeader实现身份验证步骤

  三:通过SOAPHeader实现身份验证步骤实例

  一:前言
  在互联网上,调用WebService往往需要进行身份验证,我们的WebService不可以让任何人都能够调用的,一般能调用我们的WebService的不是我们的客户,就是我们的合作方,调用WebService时我们需要身份验证,只有通过身份验证的用户才能调用相应的WebService资源,我们可以通过SOAPHeader自定义的身份验证方式实现验证

  二:SOAPHeader实现身份验证步骤

  1:自定义一个类比如CustomSOAPHeader,该类继承自SOAPHeader

  2:在CustomSOAPHeader类里面写我们自定义验证的逻辑

  3:在WebService中声明CustomSOAPHeader类型的公共成员header,并在暴露给客户端调用的方法中调用header的自定义验证方法实现身份验证功能

  4:在客户端首先创建CustomSOAPHeader类型的实例对象header,然后将用户名和密码传入header,最后调用WebService实例对象的CustomSOAPHeaderValue属性将header传入WebService

  三:通过SOAPHeader实现身份验证步骤实例

  1:Service.cs

  public class CustomSOAPHeader : SoapHeader
  {
      public CustomSOAPHeader()
      {
          //
          //TODO: 在此处添加构造函数逻辑
          //
      }
      public string name;
      public string password;
      public bool IsValid(string strUserName, string strPassword)
      {
          if (strUserName == "三星电子" && strPassword == "abc")
              return true;
          else
              return false;
      }
  }

  public class Service : System.Web.Services.WebService
  {
      public Service ()

    {

  //如果使用设计的组件,请取消注释以下行 
          //InitializeComponent(); 
      }
      public CustomSOAPHeader header;
      [WebMethod]
      [SoapHeader("header")]
      public string HelloWorld() 
      {
          if (header.IsValid(header.name, header.password))
              return "SOAP标头验证成功,返回HelloWorld";
          return "SOAP标头验证失败";
      }
  }

  2:Program.cs

   static void Main(string[] args)
        {
            localhost.Service service = new localhost.Service();
            localhost.CustomSOAPHeader header = new localhost.CustomSOAPHeader();
            header.name = "三星电子";
            header.password = "abc";
            service.CustomSOAPHeaderValue = header;
            Console.WriteLine(service.HelloWorld());
            Console.ReadLine();
        }

  

转载于:https://www.cnblogs.com/menglin2010/archive/2012/03/31/2427251.html

通过SOAPHeader增强WebService的安全性相关推荐

  1. Docker增强Container的安全性

    本文讲的是Docker增强Container的安全性[编者的话]Docker公司公布了他们最近新推出的安全扫描技术,此技术用于改善Docker容器安全性并且已经在Docker Cloud上上线.通过安 ...

  2. 在 Go 语言中增强 Cookie 的安全性

    本文讲的是在 Go 语言中增强 Cookie 的安全性, 原文地址:Securing Cookies in Go 原文作者:Jon Calhoun 译文出自:掘金翻译计划 本文永久链接:github. ...

  3. 在SQL2005中,关闭SQL Browser服务,增强数据库的安全性

    关闭SQL Browser服务,增强数据库的安全性 1. 在SQL 2005中,SQL Browser服务关闭后,如果客户端需要访问SQL Server数据库,并且SQL Server服务的端口非默认 ...

  4. 金蝶 EAS WebService 启动安全性后的调用方法

    金蝶EAS WebService开启安全性后,调用方法代码 首先登录获取 SessionID public static String login() throws ServiceException, ...

  5. 使用SoapHeader对WebService进行身份验证

    1.新建CheckUserSoapHeader View Code public class CheckUserSoapHeader : SoapHeader{public string UserNa ...

  6. 埃森哲硬件专利寻求增强区块链安全性和可扩展性

    专业服务公司埃森哲已经提交了一项专利,旨在利用专利硬件提高区块链交易的速度和安全性. 除了加速软件流程外,标题为"硬件区块链加速"的专利中描述的技术还将提高支持交易链的应用程序的安 ...

  7. IIS 日志解析,增强 IIS 服务器安全性

    企业严重依赖 Microsoft Internet 信息服务 (IIS) 服务器来托管其网页和 Web 应用程序,以及存储其文件.请务必妥善保护您的 IIS 服务器(包括 Web 和 FTP). 什么 ...

  8. HBuilder js,css压缩,增强代码的安全性

    js.css压缩 压缩不是加密,也不是混淆.但压缩后的js文件,往往也具有混淆的功能. js.css压缩是很常见的技术,我们经常看到各种框架的文件名是xxx.min.js,xxx.min.css. 使 ...

  9. F5提高Microsoft SharePoint 2010平台的灵捷 度、性能和安全性

    Microsoft® SharePoint® Server 2010为全球各地的企业实现了创新的.智能的业务协作.企业采用Microsoft SharePoint无缝地连接用户.团队和知识.Share ...

最新文章

  1. Go 语言的垃圾回收演化历程:垃圾回收和运行时问题
  2. StringBuilder/StringBuffer类
  3. 计算机视觉与模式识别方面的代码code
  4. 使用清华开源镜像安装tensorflow
  5. MySQL高级 - 存储引擎 - 选择原则
  6. php文件锁解锁是删除对应的文件_软件 | 文件解锁强制删除工具 Wise Force Deleter v1.49...
  7. 网页html 图片横向摆放,css实现多张图片横向居中显示的方法
  8. JDK源码 - BitSet的实现
  9. Pytest跳过执行之@pytest.mark.skip()详解大全
  10. 递归——数的计算(洛谷 P1028)
  11. 三大缓存框架(Ehcache+Memcache+Redis)基础
  12. Android:如何使用资源名称从资源中获取字符串?
  13. 闲鱼的统一跨端 API 方案 —— Uni API
  14. protocol buffer使用中的问题This is supposed to be overridden by subclasses
  15. 灾害应急管理信息化建设“四步走”——以水旱灾害为例
  16. Pandas 统计分析基础 笔记2 任务4.2 掌握DataFrame的常用操作
  17. 35个经典口误--笑翻你
  18. 频率很高的笔试题--动态规划类型(中)
  19. 什么是全景图?如何进行vr全景图拍摄
  20. 谈谈对MVVM的理解?

热门文章

  1. metainfo可以设置说明_Vs Code安装说明及入门操作
  2. fanuc机器人码垛编程实例_两个很简单的FANUC系统CNC加工中心编程实例
  3. 判断php对象不包含的key,如何判断一个对象是否包含指定Key
  4. 外服封号_王者荣耀外服玩家被封号十年吐槽无辜,官方复审后,玩家表示轻了...
  5. Javascript ES6 Promise同步读取文件(使用async、await)
  6. ajax没效果,ajax没有效果
  7. 华为acl怎么生效_华为ACL配置教程
  8. 20200910:力扣204周周赛题解上(Java/Python/Cpp)
  9. 二位四进制计数器_金三银四还在看JVM这一块?看完这篇万字JVM面试解析就够了...
  10. python同时发大量请求_Python批量发送post请求的实现代码