【问题标题】:.NET client calling HTTPS Java web service.NET 客户端调用 HTTPS Java Web 服务
【发布时间】:2011-04-25 14:15:35
【问题描述】:

我有一个 HTTPS Java Web 服务,我正在尝试使用 .NET[.NET 2.0 样式客户端/WCF 客户端] 访问该 Web 服务。我从 WS 收到了这个错误。

“HTTP 状态 401 - 此请求需要 HTTP 身份验证 ()。”

我如何知道这个 WS 有什么样的安全性? 除了 SSL,我还有用户名和密码可以将其发送到 WS,我相信这是消息身份验证的一部分。

Java 客户端似乎通信成功,但有趣的行数很少,

        System.setProperty("javax.net.ssl.keyStorePassword", new String(jsseKeyStorePassword));
        System.setProperty("javax.net.ssl.trustStorePassword", new String(jsseTrustStorePassword));

----------------------------------------------

  BindingProvider bindingProvider = (BindingProvider) port;
        bindingProvider.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, username);
        bindingProvider.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, new String(password));

我将不胜感激。

【问题讨论】:

  • 在使用 Silverlight 客户端(当然是第 2 版)和 Axis2 WS 时,我除了头疼之外别无所求……小心行事……

标签: c# .net client java-ws


【解决方案1】:

Java WS 似乎需要存储在几个密钥库中的服务器和根证书。它需要知道这些密钥存储的密码才能获得证书,这些证书似乎在jsseKeyStorePasswordjsseTrustStorePassword 变量中可用。

此外,您应该至少使用 .NET Framework 3.0 才能使用 Windows Communication Foundation。

【讨论】:

  • 嗯,我的意思是 .NET 2.0 风格的客户端或 WCF 客户端
【解决方案2】:

长话短说, 我必须解决的两个问题,

  1. HTTP 状态 401 - 此请求 需要HTTP认证()

    在 VS 生成的 app.config 中的 customeBinding 中将身份验证架构更改为 Basic

  2. HTTP/1.1 505 HTTP 版本不是 支持

    删除 预期:100-继续 SOAP 标头。添加此行ServicePointManager.Expect100Continue = false;。有关问题的详细信息,转到此处

这里说来话长http://www.irasenthil.com/2010/10/wcf-client-to-java-web-service.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-04
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    相关资源
    最近更新 更多