Я разработал Службу WCF с пользовательским UserNamePasswordValidator
с basicHttpBinding
с использованием HTTPS. Он отлично работает с клиентом .Net, используя ClientCredentials для отправки имени пользователя и пароля для аутентификации.
Однако мне нужно вызвать это из клиента Delphi XE. Как отправить эквивалент .Net ClientCredentials с помощью Delphi? Это возможно? Если это так, как? Если это не так, есть ли альтернативы?
Tks
EDIT
Ниже мой клиентский код в .Net:
EndpointAddress oTransac = new EndpointAddress(GetAddress());
using (WebServiceClient oClient = new WebServiceClient ("httpbasic", oTransac))
{
oClient.ClientCredentials.UserName.UserName = "username";
oClient.ClientCredentials.UserName.Password = "password";
oClient.DoStuff();
}
EDIT
Я проводил некоторые исследования и смог выполнить аутентификацию между Delphi и старыми веб-сервисами asmx с использованием SOAP Hearders. Я нашел статью ниже. Смогу ли я добиться того же поведения старого [WebMethod] [System.Web.Services.Protocols.SoapHeader("SoapHeader")]
, используя технику статьи?
http://weblogs.asp.net/paolopia/archive/2008/02/25/handling-custom-soap-headers-via-wcf-behaviors.aspx
РЕДАКТИРОВАТЬ BOUNTY
Получив пометку как правильный ответ за вознаграждение, я хотел бы иметь возможность вызывать веб-службу из Delphi, используя службу WCF UserNamePasswordValidator
на стороне сервера.