【发布时间】:2011-11-15 15:45:06
【问题描述】:
我需要使用数字签名连接到 Web 服务。我正在使用 .NET 4.0 和 WCF(服务参考)以及 X509 SSL 证书,但找不到任何关于如何正确实现目标的合适说明。
我发现了成百上千篇关于加密肥皂消息、签署数据等的文章和博客等,其中有许多示例使用 X509Certificate1、X509Certificate2、X509Certificate3、DSACryptoServiceProvider、RSACryptoServiceProvider 等所有内容,在web.config,在代码中设置配置,使用 basicHttpBinding 或 wsHttpBinding,或使用 WSE、WSE2、WSE3、ad nauseum。
基本上,我发现了各种对我来说完全没用的信息,因为我无法找到一个完整的示例来说明如何简单地将数字签名添加到肥皂消息中。
通过阅读数字签名的示例,这听起来应该是一个简单的过程,但我找不到一个有用的实现。
有人可以指点我正确的方向吗?
【问题讨论】:
-
“使用数字签名连接到 Web 服务”。这听起来很奇怪。这是否意味着在调用该 Web 服务时需要附加客户端证书?该服务主机还为您提供了哪些其他信息?
-
是的,没错。除了地址和 wsdl 之外,我真的没有太多其他东西,并且已经与主机交易了证书。我知道该服务是用 Java 编写的,并通过 Apache CFX 托管。我得到的唯一错误是标头中的某些内容与服务预期的标头信息不一致。我可以连接,但没有比这更远的了。
-
你找到了很多例子,因为有很多变体如何做到这一点。你必须确切地知道你想要达到什么。服务是否已经实施?它是否在 WSDL 中有 WS-SecurityPolicy 断言来描述必须如何准确地对消息进行签名?如果是,请将该断言发布到您的问题中。如果没有,请联系服务提供商并询问消息签名部分的确切描述。
-
正确!我同意所有可用的样本和信息——甚至来自 MSDN——都是完全没用的。所以。实际上是最好的,但是看——你甚至没有得到一个像样的答案……我的搜索还在继续……手工制作该死的 SOAP 请求会更容易。
标签: wcf web-services