Я вызываю стороннюю службу в приложении MVC, где она работает, если я передаю значения в конечную точку в web.config
<endpoint address="address of svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IETDocService" contract="EDocService.IETDocService" name="BasicHttpBinding_IETDocService">
<headers>
<UserNameHeader xmlns="urn:-----" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<UserName xmlns="http://schemas.datacontract.org/2007/08/FT.DHM">john.cena@dmh.com</UserName>
<Password xmlns="http://schemas.datacontract.org/2007/08/FT.DHM">32d698cf-51t5-4080-6d44-143e4432df73</Password>
</UserNameHeader>
</headers>
</endpoint>
Эта конфигурация работает нормально, теперь мне нужно передать имя пользователяи пароль динамически, но он не работает, ниже приведен код, который я пробовал,
Попробуйте 1
var endAdd = new EndpointAddressBuilder(loginService.Endpoint.Address);
endAdd.Headers.Add(AddressHeader.CreateAddressHeader("UserName", string.Empty,
request.UserName));
endAdd.Headers.Add(AddressHeader.CreateAddressHeader("Password",
string.Empty,
request.Pwd));
loginService.Endpoint.Address = endAdd.ToEndpointAddress();
Попробуйте 2
ctWcf.ClientCredentials.ClientCertificate.Certificate = this.MessageSigningCertificate;
using (new OperationContextScope(ctWcf.InnerChannel))
{
UserInfo userInfo = new UserInfo();
userInfo.UserName = "john.cena@dmh.com";
userInfo.Password = "32d698cf-51t5-4080-6d44-143e4432df73";
MessageHeader aMessageHeader = MessageHeader.CreateHeader("UserNameHeader", "http://uddi.org", userInfo);
OperationContext.Current.OutgoingMessageHeaders.Add(aMessageHeader);
}
Невозможно вызватьсервис, ваша помощь очень ценится