自定义SOAP消息头-创新互联

对于WebService调用,为了验证调用者的身份,可以自定义一个SoapHeader,让调用者将身份信息放在里面,然后在服务端检查,具体方法如下:

成都创新互联公司主要从事成都做网站、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务华容,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

1、先定义一个SoapHeader,用它来传递身份信息:

  1. using
  2. using
  3. namespace
  4. /// 
  5. /// 自定义SOAP头,从SoapHeader派生
  6. /// 
  7. publicclass
  8. /// 
  9. /// 定义用户名字段
  10. /// 
  11. publicstringgetset
  12. /// 
  13. /// 定义密码字段
  14. /// 
  15. publicstringgetset

2、WebService中的服务方法要修改一下:

  1. using
  2. using
  3. using
  4. namespace
  5. "CustomSoap.Test"
  6. false
  7. publicclass
  8. /// 
  9. /// 定义一个ServiceHeader对象
  10. /// 
  11. publicgetset
  12. /// 
  13. /// 服务方法,用SoapHeader标记使用哪个头,此处是上面定义的Header属性
  14. /// 
  15. /// 
  16. "Header"
  17. publicstring
  18. stringthis
  19. stringthis
  20. //在此处可以进行身份判断,这里是写死了用户名密码
  21. ifstring"root"string"pass"
  22. return"Hello root"
  23. else
  24. return"Login Required"

3、调用者要传递身份信息:

  1. publicstring
  2. //ServiceProxy是针对Service.asmx生成的代理类
  3. new
  4.  
  5. //传递身份信息
  6. new
  7. "root"
  8. "pass"
  9.  
  10. //调用远程方法  
  11. return

调用一下,应该能收到“Hello root”,如果用户名或密码错误,会收到“Login Required”。

此时的SOAP内容会发生变化,抓一下包或者直接在浏览器上访问Service.asmx?op=Hello,可以看到请求包:

  1. POST /Service.asmx HTTP/1.1 
  2. charsetutf

另外提一下,对于WebService,是明文的SOAP通讯,安全性上需要各位自己考虑一下方案。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:自定义SOAP消息头-创新互联
文章分享:http://hbruida.cn/article/poscg.html