怎么把webservice头验证加入到wsdl中

怎么把webservice头验证加入到wsdl中,第1张

首先,要创建一个继承自System.Web.Services.Protocols.SoapHeader的RequestSOAPHeader类,在其中添加UserName和Password两个属性,代码如下:

public class RequestSOAPHeader : System.Web.Services.Protocols. SoapHeader

{

public string user { getset}

public string password { getset}

}

生成的WebService代理类中设置成属性成员:

public partial class ISysNotifyTodoWebServiceService

{

public RequestSOAPHeader RequestSOAPHeader { getset}

}

在访问的WebService方法上方添加SOAPHeader的声明:

[System.Web.Services.Protocols. SoapDocumentMethodAttribute( "", RequestNamespace="http://webservice.notify.sys/" , ResponseNamespace="http://webservice.notify.sys/" , Use=System.Web.Services.Description.SoapBindingUse .Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle .Wrapped)]

[ return: System.Xml.Serialization. XmlElementAttribute( "return", Form=System.Xml.Schema.XmlSchemaForm .Unqualified)]

[ SoapHeader( "RequestSOAPHeader")]

public notifyTodoAppResult setTodoDone([System.Xml.Serialization.XmlElementAttribute (Form=System.Xml.Schema.XmlSchemaForm .Unqualified)] notifyTodoRemoveContext arg0) {

object[] results = this.Invoke( "setTodoDone", new object[] {

arg0})

return (( notifyTodoAppResult)(results[0]))

}

如果你是用axis生成的代码的话 去用CUX_0_WS_SERVER_PRG_BindingStub.java 这个类调用服务。

CUX_0_WS_SERVER_PRG_Service service=new CUX_0_WS_SERVER_PRG_ServiceLocator()

CUX_0_WS_SERVER_PRG_BindingStub stub=(CUX_0_WS_SERVER_PRG_BindingStub)service.CUX_0_WS_SERVER_PRGSOAP()

stub.setUsername("aaaa") //连接的用户名

stub.setPassword("aaaa")//连接的密码

stub.setHeader( dddd) //dddd是一个SOAPHeader 具体看对方wsdl要求

stub.invokefmsws(so.in)

不知道对方要求怎么验证 是在header中添加用户名和密码 还是在连接时需提供用户名密码。

所以把添加header 和 使用用户名 密码连接 验证都写了。 找对方确认下用那种方式然后自己试一下。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11805370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存