对于WebService调用,为了验证调用者的身份,可以自定义一个SoapHeader,让调用者将身份信息放在里面,然后在服务端检查,具体方法如下:
成都创新互联公司主要从事成都做网站、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务华容,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:189808205751、先定义一个SoapHeader,用它来传递身份信息:
- using
- using
- namespace
- ///
- /// 自定义SOAP头,从SoapHeader派生
- ///
- publicclass
- ///
- /// 定义用户名字段
- ///
- publicstringgetset
- ///
- /// 定义密码字段
- ///
- publicstringgetset
2、WebService中的服务方法要修改一下:
- using
- using
- using
- namespace
- "CustomSoap.Test"
- false
- publicclass
- ///
- /// 定义一个ServiceHeader对象
- ///
- publicgetset
- ///
- /// 服务方法,用SoapHeader标记使用哪个头,此处是上面定义的Header属性
- ///
- ///
- "Header"
- publicstring
- stringthis
- stringthis
- //在此处可以进行身份判断,这里是写死了用户名密码
- ifstring"root"string"pass"
- return"Hello root"
- else
- return"Login Required"
3、调用者要传递身份信息:
- publicstring
- //ServiceProxy是针对Service.asmx生成的代理类
- new
- //传递身份信息
- new
- "root"
- "pass"
- //调用远程方法
- return
调用一下,应该能收到“Hello root”,如果用户名或密码错误,会收到“Login Required”。
此时的SOAP内容会发生变化,抓一下包或者直接在浏览器上访问Service.asmx?op=Hello,可以看到请求包:
- POST /Service.asmx HTTP/1.1
- charsetutf
另外提一下,对于WebService,是明文的SOAP通讯,安全性上需要各位自己考虑一下方案。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。