.net soap响应主体的WCF部分被签名,而不是整个主体
我创建了一个WCF客户机来使用JavaWeb服务。soap 1.1请求和响应使用X509证书进行签名和加密。我当前在尝试读取响应数据时收到以下异常 无法解析签名中的“#id-1234”URI以计算摘要 对于主体本身已签名的响应,客户端可以正常工作。对于这个特定的响应,主体本身没有签名。正文中的一部分已签名。例如:.net soap响应主体的WCF部分被签名,而不是整个主体,.net,web-services,wcf,soap,wcf-security,.net,Web Services,Wcf,Soap,Wcf Security,我创建了一个WCF客户机来使用JavaWeb服务。soap 1.1请求和响应使用X509证书进行签名和加密。我当前在尝试读取响应数据时收到以下异常 无法解析签名中的“#id-1234”URI以计算摘要 对于主体本身已签名的响应,客户端可以正常工作。对于这个特定的响应,主体本身没有签名。正文中的一部分已签名。例如: <Body> <myResponseModel> <result> <item wsu:Id="id-1
<Body>
<myResponseModel>
<result>
<item wsu:Id="id-1234" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"/>
</result>
</myResponseModel>
</Body>
我以前发现这样的回答,说WCF不支持签署身体的各个部分。相反,你必须在整个身体上签名。
我的问题是:
提前感谢您的帮助。WCF支持SOAP1.2和WS-I标准。您提到了SOAP1.1,它建议JavaWeb服务使用非标准规范。例如,代码中提到了WS-Security,它不是WS-I的一部分。但较旧的ASMX代理可以调用此类服务。您应该尝试添加Web服务引用(作为“服务引用”对话框中的选项提供),而不是服务引用。WCF还允许您创建自定义消息格式化程序,可用于模拟任何规范。感谢您的回复。是的,我尝试使用的服务并没有严格遵守标准,但谢天谢地,WCF及其可扩展性使我能够满足除本文所述之外的所有要求。我已经能够重新审视这一点,并开始按照您的建议研究定制的客户端消息格式化程序;但是,我不明白格式化程序如何帮助我更改消息响应或请求的签名和加密。请你进一步详细说明一下好吗?