如何使用https上的basicHttpBinding和Username身份验证配置WCF客户端

时间:2014-02-05 23:58:40

标签: c# wcf authentication

我正在尝试使用我们公司内其他组提供的网络服务。该服务是用Java编写的,它们的JAVA测试客户端正常运行。但是,我无法让基于.NET4.0或.NET 4.5的WCF客户端与它通信。他们需要https传输,因为它的JAVA我使用basicHttpBinding。他们还需要用户名/密码。在JAVA中,他们说用户名/密码处于绑定级别,当查看从其测试代码中捕获的消息时,没有任何证据表明用户名或密码被发送。我可以连接到他们的服务但无法通过身份验证,因为他们没有看到我的用户名和&密码。用户名和密码在代码中设置。我目前正在使用自签名证书测试他们的开发服务器。我们的终端相距1500英里,但通过内部企业(安全)网络连接。

我只需要知道在客户端使用的“绑定”,“行为”和“端点”的正确配置设置。我可以发布我的设置,但这只会产生误导,因为我已经尝试过100次,而且没有一个能够达到预期的效果。

只要不涉及对服务主机端(或可能不是IIS)的任何更改(或知识),您可以提供的任何帮助都将非常有用。

感谢您的想法。

Java客户端代码如下所示:

ServiceImplServiceLocator locator = new ServiceImplServiceLocator();
locator.setServiceEndpointAddress( "https://<hostaddr>:8443/Service" );
locator.setServiceWSDDServiceName("Service");

ServiceImpl service = locator.getService();

ServiceSoapBindingStub binding = (ServiceSoapBindingStub) service;
binding.setUsername("Username");
binding.setPassword("Password");

// call web service
Return = binding.ServiceMethod( ... );

0 个答案:

没有答案