Я использую веб-сервис, который помещает токен аутентификации в заголовок конверта SOAP. Кажется (просматривая примеры, поставляемые с WS WSLL), что если заглушка генерируется в .NET, эта информация заголовка предоставляется через переменную-член в классе заглушки. Однако, когда я генерирую свою заглушку Axis2 с использованием WSDL2Java, она, кажется, нигде не раскрывается.
Как правильно извлечь эту информацию из заголовка конверта SOAP?
WSDL:
http://www.vbar.com/zangelo/SecurityService.wsdl
C # Образец:
using System;
using SignInSample.Security; // web service
using SignInSample.Document; // web service
namespace SignInSample
{
class SignInSampleClass
{
[STAThread]
static void Main(string[] args)
{
// login to the Vault and set up the document service
SecurityService secSvc = new SecurityService();
secSvc.Url = "http://localhost/AutodeskDM/Services/SecurityService.asmx";
secSvc.SecurityHeaderValue = new SignInSample.Security.SecurityHeader();
secSvc.SignIn("Administrator", "", "Vault");
DocumentServiceWse docSvc = new DocumentServiceWse();
docSvc.Url = "http://localhost/AutodeskDM/Services/DocumentService.asmx";
docSvc.SecurityHeaderValue = new SignInSample.Document.SecurityHeader();
docSvc.SecurityHeaderValue.Ticket = secSvc.SecurityHeaderValue.Ticket;
docSvc.SecurityHeaderValue.UserId = secSvc.SecurityHeaderValue.UserId;
}
}
}
Пример иллюстрирует то, что я хотел бы сделать. Обратите внимание, что экземпляр secSvc
имеет переменную-член SecurityHeaderValue
, которая заполняется после успешного вызова secSvc.SignIn()
.
Вот некоторая соответствующая документация API, касающаяся метода SignIn
:
Хотя возвращаемого значения нет, успешный вход в систему заполнит значение SecurityHeaderValue службы безопасности. Информация SecurityHeaderValue затем используется для других вызовов веб-служб.