I'm trying to send SOAP Request to Amadeus Enterprise WSAP. they provide little documentation for how to connect, I followed their code sample
class SecurityTokenInspector : IClientMessageInspector
{
.....
public object BeforeSendRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel)
{
if (channel.State == CommunicationState.Closed)
{
UsernameToken token = new UsernameTokenBP10(this.username, this.password, PasswordOption.SendHashed);
XmlElement securityToken = token.GetXml(new XmlDocument());
MessageHeader securityHeader = MessageHeader.CreateHeader("Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", securityToken, false);
request.Headers.Add(securityHeader);
}
return null;
}
.....
}
Here is the using:
AmadeusWebServicesPTClient client = new AmadeusWebServicesPTClient("AmadeusWebServicesPort");
SecurityTokenInspector iSecurity = new SecurityTokenInspector(ConfigurationManager.AppSettings["user"], ConfigurationManager.AppSettings["pass"]);
SecurityBehavior behavior = new SecurityBehavior
{
inspector = iSecurity
};
client.Endpoint.Behaviors.Add(behavior);
but BeforeSendRequest not called.
Can anyone help?