Я использую стороннюю веб-службу https в службе WCF, используя два способа, описанные ниже.Разница в аутентификации фабрики каналов WCF vs Ссылка на службу
Использование Service Reference
ServiceClient client=new ServiceClient(); client.ClientCredentials.UserName.UserName ="xxx"; client.ClientCredentials.UserName.Password = "pwd"; ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; ServiceResponse response=client.GetData();
2.Using фабрику каналов
ChannelFactory<IService> client = new ChannelFactory<IService>(binding, address);
var proxy = client.CreateChannel();
client.Credentials.UserName.UserName ="xxx";
client.Credentials.UserName.Password ="pwd";
ServiceResponse response=client.GetData();
Я могу передать учетные данные безопасности, используя первый подход, и я могу получить ответ от стороннего веб-сервиса. Но я не могу получить ответ, когда я использую второй подход. Я вижу, что имя пользователя и пароль добавляются в заголовок безопасности сообщения Outoing SOAP с первым подходом, но не со вторым подходом. Я был бы рад, если кто-то может бросить какое-то предложение здесь о заводском подходе к каналу.
Разница в привязок между этими двумя, возможно? –
Я использую WSHttpBinding для обоих подходов. – Macnique
Вы проверили параметры привязки к безопасности? –