【发布时间】:2018-04-18 20:43:24
【问题描述】:
我正在尝试从 C# 客户端使用 Java Web 服务。该服务需要具有值类型X509PKIPathv1 的BinarySecurityToken 元素。
<wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509PKIPathv1">
MIIH......
</wsse:BinarySecurityToken>
由于WCF does not support X509PKIPathv1 值类型,我手动生成SOAP 消息,使用SignedXml 类对其进行签名,使用EncryptedXml 对其进行加密并使用WebClient 类发送它。至于BinarySecurityToken元素的值,我使用了SoapUI中生成的值,用于同一个证书,是可以的。
但是,我希望能够以编程方式从 .p12 文件生成此值,而不必每次证书过期时都从 SoapUI 中再次粘贴它。
WS-Security documentation 有点模糊,所以我不知道该怎么做。这是它提供的有关此令牌类型的所有信息:
#X509PKIPathv1:打包在 PKIPath 中的 X.509 证书的有序列表
如何在 C# 中从 .p12 文件生成这个值? SoapUI 以某种方式做到了。
【问题讨论】:
-
我有同样的问题,除了从 C++/OpenSSL 的角度来看。
标签: c# ws-security