微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过SOAPHeader增强WebService的安全性

阅读目录

  一:前言

  二: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();
        }

  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐