2010-04-16 101 views
0

我试图消费使用证书的Java Web服务。我可以生成代理,添加服务参考。问题是:它需要基本的HTTP授权标头。 它需要引用用户/密码并将它们传递到标题中。使用.NET客户端消费Java Web服务

谢谢。

回答

1

这取决于您使用的.NET版本。

如果您可以使用WCF,您只需更改绑定,传递凭据并让框架完成工作。

你可以在这里找到配置说明(你只需要客户端配置下半场):

Transport Security with Basic Authentication - MSDN

否则,您可以下载Web Service Extensions (WSE) 3.0和使用,对于简单的身份验证。

Implementing Direct Authentication with UsernameToken in WSE 3.0

+0

感谢您的WCF解决方案。在客户端(Windows窗体)中使用ServiceModel组件进行工作。对于授权,我只是启用绑定以使用基本安全性,并传入客户端证书。 – Erup 2010-04-17 22:24:13

0

这听起来像Java的Web服务使用SSL,TLS协议,而不是老派的SSL协议。您不需要“在标题中加密证书用户名和密码”。我现在不在你听到的那个地方。如果它的一个常规证书是Java默认cacerts密钥库的一部分,那么Java已经拥有内置的密码。

如果我是自签名证书(在Web服务端),您可能需要以某种方式告诉C#信任自签名证书。另外,您所指的“凭证”不是用户名+密码,而是仅仅是私钥有效负载。

+0

我认为你没有得到我应该说的意思,但它确定。我的意思是在自定义标题中,它需要传递凭据。我已将证书添加到可信证书中。 – Erup 2010-04-16 19:24:24

+0

要强制应用程序信任证书,我使用了此处描述的解决方法:http://www.ben-morris.com/asp-net-web-services-and-ssl-certificates-establishing-a-trust-relationship – Erup 2010-04-17 22:26:33