我有一个WCF服务是:您可以使用SoapUI测试证书保护的WCF服务吗?
- 使用
BasicHttpBinding
(如果你能回答WsHttpBinding
甚至更好!) - 使用
TransportWithMessageCredential
安全 - 使用,运输和X.509证书信息安全
我希望能够使用SoapUI测试此服务。
然而,当我试图这样做,似乎超过WCF的消息了SoapUI迹象预计,导致这个错误(在应用程序日志中检测到启用ServiceModel审计后):
CryptographicException: Unable to resolve the '#id-100' URI in the signature to compute the digest.
或者,当我使用WsHttpBinding
我得到异常:
MessageSecurityException: The message received over Transport security has unsigned 'To' header.
类似的问题已经提出:
- WCF rejects messages with additional signed elements
- http://connect.microsoft.com/VisualStudio/feedback/details/481030/wcf-signed-parts
- Getting WCF to accept unsigned 'To' Header
这不打我作为一个 “Java的交谈MS WCF” 的问题 - 我有一个Java测试客户端没有问题的工作。同样,我可以使用WCFStorm来测试服务。但是,SoapUI已经成为事实上的测试标准,特别是对于非Windows用户。
那么,有没有人设法克服这些问题,并使用SoapUI测试证书安全的WCF服务?
感谢
我相信这个问题是无法解决的,根据我自己的测试和250赏金没有产生一个答案。
的“web.config文件”是动态生成的,但它有效地匹配以下两种绑定:
<wsHttpBinding>
<binding name="WSHttpBinding_ITwoWayAsync" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="250000" maxReceivedMessageSize="250000"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Certificate" proxyCredentialType="None" realm="" />
<message clientCredentialType="Certificate" negotiateServiceCredential="false"
establishSecurityContext="false"
algorithmSuite="Default" />
</security>
</binding>
</wsHttpBinding>
<basicHttpBinding>
<binding name="BasicHttpBinding_ITwoWayAsync" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="250000" maxReceivedMessageSize="250000"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Certificate" proxyCredentialType="None" realm="" />
<message clientCredentialType="Certificate" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
可以请你在web.config文件中分享你的system.servicemodel设置吗? – Nabheet 2012-03-06 21:29:14