【问题标题】:Consuming Java web-services using .NET Client使用 .NET 客户端使用 Java Web 服务
【发布时间】:2010-04-16 18:59:28
【问题描述】:

我正在尝试使用使用证书的 Java Web 服务。我可以生成代理,添加服务参考。问题是:它需要 Basic HTTP Authorization Header。 有必要加密用户/密码并在标题中传递它们。

谢谢。

【问题讨论】:

    标签: .net web-services interop


    【解决方案1】:

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

    如果您可以使用 WCF,您所要做的就是更改绑定、传递凭据,然后让框架完成工作。

    您可以在此处找到配置说明(客户端配置只需要后半部分):

    Transport Security with Basic Authentication - MSDN

    否则,您可以下载Web Service Extensions (WSE) 3.0 并将其用于简单身份验证。

    Implementing Direct Authentication with UsernameToken in WSE 3.0

    【讨论】:

    • 感谢 WCF 解决方案。在客户端(Windows 窗体)中使用 ServiceModel 组件工作。对于授权,我只是启用绑定以使用基本安全性,并传入客户端凭据。
    【解决方案2】:

    听起来 Java 网络服务使用的是 SSL TLS 协议,而不是老式的 SSL 协议。您不需要“在标头中加密证书用户名和密码”。我现在不知道你在哪里听到的。如果它是 Java 的默认 cacerts 密钥库的一部分的常规证书,那么 Java 已经内置了密码。

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

    【讨论】:

    • 我想你没明白我的意思,但没关系。我的意思是在自定义标头中,它需要传递凭据。我已经将证书添加到受信任的证书中。
    • 为了强制应用信任证书,我使用了这里描述的解决方法:ben-morris.com/…
    猜你喜欢
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 2011-09-10
    • 2011-04-25
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    相关资源
    最近更新 更多