我正在使用下面描述的 2 种方式在 WCF 服务中使用第 3 方 https Web 服务。
使用服务参考
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.使用渠道工厂
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();
我能够使用第一种方法传递安全凭据,并且能够从第 3 方 Web 服务中获取响应。但是当我使用第二种方法时,我无法获得响应。我可以看到用户名、密码是使用第一种方法添加到外发 SOAP 消息的安全标头中的,而第二种方法则没有。如果有人可以在这里提出有关通道工厂方法的一些建议,我会很高兴。