0

所以,这是我的百万美元问题。我想使用第三方托管的服务,因此在设置中我们交换了 X509 证书。我给他们发了我们的,我们得到了他们的。我在证书存储中添加了他们的自签名证书。现在,我尝试使用soapUI连接到服务,我需要使用我的私钥创建一个JKS文件来连接,并使用WSSE标头作为用户名、密码、随机数和TTL,它工作得很好。

但是,我想编写一个 WCF c# 客户端来与服务通信,并且将我的证书添加到配置中的客户端凭据或通过代码不起作用。有人可以让我知道如何使用私钥使用 WCF 发送消息吗?

我已经尝试了这两种方法,但不确定我哪里出错了......

proxy.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(@"C:\soapUI\soapUI\Agency1\certificates\myprivatekey.pfx", "Pwd");
proxy.ClientCredentials.ServiceCertificate.DefaultCertificate = new X509Certificate2(@"C:\soapUI\soapUI\Agency1\certificates\myprivatekey.pfx", "Pwd");

我还在肥皂信封中添加了正确的 wsu 和 wsse 标题。当我将肥皂信封从 WCF 客户端带到 SOAPUI 时,它可以工作,但不能来自 WCF 本身。所以我很确定它是如何使用私钥的不同之处。因此,任何思路都会有所帮助。

4

1 回答 1

0

在本文中,我们将从了解传输和消息安全开始。然后,我们将看到如何使用 WsHTTP 绑定实现传输和消息安全的简单代码示例。我们还将借助一个简单的代码了解“BasicHttpBinding”和“WsHttpBinding”之间的区别。WCF 安全性本身就是一个巨大的话题,但我相信通过这篇文章,您将快速了解如何了解 WCF 安全性。

http://www.codeproject.com/Articles/36732/WCF-FAQ-Part-3-10-security-related-FAQ

于 2013-01-11T09:01:04.040 回答