.net 平台下的webservice利用soapheader自定义信息做验证
来源:互联网 发布:linux kvm宿主os 编辑:程序博客网 时间:2024/05/21 17:53
前面几篇文章都说的是在java环境下制作webservice碰到的问题,现在再来说一下在.net平台下如何获取soapheader中的自定义信息。
首先我们先看一下客户端发起请求的soap,其中header部分的CertificationProxy节点为验证信息
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/"> <soap:Header> <tem:CertificationProxy> <!--Optional:--> <tem:USER>xxx</tem:USER> <!--Optional:--> <tem:PWD>xxx</tem:PWD> <!--Optional:--> <tem:REQUEST_SERVER_ADDRESS>xxx</tem:REQUEST_SERVER_ADDRESS> </tem:CertificationProxy> </soap:Header> <soap:Body> <tem:HellowWorld> <!--Optional:--> <tem:strXmlPara>xxx</tem:strXmlPara> </tem:HellowWorld> </soap:Body></soap:Envelope>
在服务端的这个HelloWorld方法如下
/// <summary> /// HellowWorld /// </summary> /// <returns> HelloWorld</returns> [WebMethod] // 通知客户端该方法的soaphead节点名为CertificationProxy,这里CertificationProxy是代理类名而不是代理类实体变量名; [SoapHeader("certificationProxy")] public string HelloWorld(string s) { string str = "Hello World"; if (IsValidPass()) { if (s.Equals("cnm")) { return "cnm"; } return str; } else { //return "验证未通过"; throw new Exception("验证未通过"); } }其中[SoapHeader("certificationProxy")]中指定的certificationProxy对象是我们对应自定义header信息所构建的类(CertificationProxy)的实例,这个类的内容如下
/// <summary> /// webservice认证代理类 /// </summary> /// <remarks> /// 作成者:cyf /// </remarks> public class CertificationProxy : SoapHeader { private string user = CWConstant.EMPTY; private string pwd = CWConstant.EMPTY; private string requestServerAddress = CWConstant.EMPTY; /// <summary> /// 用户名 /// </summary> public string USER { set { this.user = value; } get { return this.user; } } /// <summary> /// 密码 /// </summary> public string PWD { set { this.pwd = value; } get { return this.pwd; } } /// <summary> /// 发起请求的服务器地址 /// </summary> public string REQUEST_SERVER_ADDRESS { set { this.requestServerAddress = value; } get { return this.requestServerAddress; } } }其中的 USER、PWD、REQUEST_SERVER_ADDRESS这三个属性就是用于对应请求soap中的头部信息
验证的方法(IsValidPass)可以放在一个基类里让方法所属的类去继承,这样每个方法在需要验证的时候就可以调用基类里的验证方法了。
public class WsBase : System.Web.Services.WebService { /// <summary> /// 认证代理类实例 /// </summary> public CertificationProxy certificationProxy; /// <summary> /// 判断请求信息是否通过认证 /// </summary> /// <returns> /// true:通过;false: 未通过 /// </returns> /// <remarks> /// 作成者:cyf /// </remarks> protected bool IsValidPass() { if (CheckUtility.IsEmpty(certificationProxy)) { // 验证信息不存在时 return false; } else { SystemCertification sysCertificate = new SystemCertification(); // 这里添加验证操作 if (sysCertificate.InvokeSystemCertificateMethod(certificationProxy.USER, certificationProxy.PWD)) { // 用户名密码正确时 return true; } else { // 用户名密码不正确时 return false; } } } }
- .net 平台下的webservice利用soapheader自定义信息做验证
- webservice SoapHeader 验证
- ASP.NET调用JAVA的CXF生成的Webservice,并带有Soapheader验证的解决方案
- Java调用带SoapHeader头验证的.net Webservice示例代码
- Java调用带SoapHeader头验证的.net Webservice示例代码
- .net调用java xfire发布的webservice封装soapheader头信息
- NET 平台下的WebService
- 使用SoapHeader实现对WebService的访问验证
- # C# 调用java的WebService添加SOAPHeader验证
- 在WebService中使用简单的自定义SoapHeader
- WebService基于SoapHeader实现安全认证[webservice][.net][安全][soapheader]
- 利用SoapHeader验证web service调用的合法性(dwonmoon)
- 利用SoapHeader验证web service调用的合法性
- 利用SoapHeader验证web service调用的合法性
- 记录一个.net平台下动态调用webservice的处理类(动态编辑请求soap信息)
- WebService在.NET 平台下的应用
- android调用webservice带soapheader验证
- asp.net 下利用DirectoryEntry验证用户及获取域控制器下的用户结构信息
- 企业运营中的渐进螺旋演化套路与线性思维
- Android项目导入出现问题解决方案
- 下载频道12月热门资源TOP100强力推荐!
- 安卓巴士总结了近百个Android优秀开源项目,覆盖Android开发的每个领域
- android解析json
- .net 平台下的webservice利用soapheader自定义信息做验证
- Arch Linux命令
- Textview如何将Html语言中的空格进行转换并实现首行缩进
- 一号店拆库的那点事
- 系统启动过程
- Struts2 标签加样式
- MYSQL中EXPLAIN的说明
- mediacontroller无法显示问题
- android 手机流量的读取