将Soap身份验证头从PHP发送到ASP.NET Web服务
我正在尝试将带有身份验证凭据的soap头从PHP发送到ASP.NET Web服务将Soap身份验证头从PHP发送到ASP.NET Web服务,php,asp.net,web-services,Php,Asp.net,Web Services,我正在尝试将带有身份验证凭据的soap头从PHP发送到ASP.NET Web服务 /// <summary> /// Soap Header for the Secured Web Service. /// </summary> public class TestWebServiceHeader : System.Web.Services.Protocols.SoapHeader { public string Username; public strin
/// <summary>
/// Soap Header for the Secured Web Service.
/// </summary>
public class TestWebServiceHeader : System.Web.Services.Protocols.SoapHeader
{
public string Username;
public string Password;
public string AuthenticatedToken;
}
/// <summary>
/// Summary description for TestService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class TestService : System.Web.Services.WebService
{
public TestWebServiceHeader AuthHeader;
public SoapUnknownHeader[] UnknownHeaders;
[WebMethod]
[System.Web.Services.Protocols.SoapHeader("AuthHeader")]
[SoapHeader("UnknownHeaders")]
public string HelloWorld()
{
foreach (SoapUnknownHeader header in UnknownHeaders)
{
if (header.Element.LocalName == "AuthHeader")
{
// FOUND HEADER
}
}
if (AuthHeader == null)
{
// NULL AuthHeader
}
return "Hello World";
}
}
//
///安全Web服务的Soap标头。
///
公共类TestWebServiceHeader:System.Web.Services.Protocols.SoapHeader
{
公共字符串用户名;
公共字符串密码;
公共字符串AuthenticatedToken;
}
///
///TestService的摘要描述
///
[WebService(命名空间=”http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
公共类TestService:System.Web.Services.WebService
{
公共TestWebServiceHeader AuthHeader;
公共SoapUnknownHeader[]未知领导者;
[网络方法]
[System.Web.Services.Protocols.SoapHeader(“AuthHeader”)]
[SoapHeader(“未知标题”)]
公共字符串HelloWorld()
{
foreach(未知标头中的SoapUnknownHeader标头)
{
if(header.Element.LocalName==“AuthHeader”)
{
//找到的标题
}
}
if(AuthHeader==null)
{
//空AuthHeader
}
返回“你好世界”;
}
}
这里是PHP
<?php
$service = new SoapClient("http://localhost/Orientation/TestService.asmx?wsdl");
$HeaderSecurity = array("Username"=>"user", "Password"=>"pass123");
$header = new SoapHeader('http://tempuri.org/', 'AuthHeader', $HeaderSecurity, false);
$service->__setSoapHeaders(array($header));
$service->HelloWorld(); // Example
//$service = new SoapClient("http://localhost/Orientation/TestService.asmx?wsdl");
//$auth = array('user'=>'user', 'password'=>'pass123');
//$authvar = new SoapVar($auth, SOAP_ENC_OBJECT);
//$header = new SoapHeader('http://tempuri.org/', 'AuthHeader xmlns="http://tempuri.org/"', $authvar, false);
//$service->__setSoapHeaders(array($header));
//$service->HelloWorld();
?>
谢谢你的回复。这给了我同样的问题。