当我将以下内容发布到Loket的Web服务时:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:svc="http://Loket.Webservice/ServiceContracts/2008/06">
<soapenv:Body>
<svc:GetMetaData>
<svc:UserToken>TOKEN_RETRIEVED_WITH_LOGON</svc:UserToken>
</svc:GetMetaData>
</soapenv:Body>
</soapenv:Envelope>
我收到错误:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring xml:lang="nl-NL">GetMetaData</faultstring>
<detail>
<DefaultFaultContract xmlns="http://Loket.Webservice/ServiceContracts/2008/06" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<ErrorMessage>DecryptAndDeserializeUserToken</ErrorMessage>
</DefaultFaultContract>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
答案 0 :(得分:0)
错误消息具有误导性。用户令牌是正确的,您可以通过调用List
方法验证。
但是,必须使用可选列出的DataIdentity
元素。它必须包含表的标识的散列和加密值,例如:
MqhIh6BdOHPRi1s16c + fNUmm4TO1p7HTwEKxxjgiAjB + o12lO5fq1poK4OZcfOE0yZyvwkDjCcm17foDi7V0uqp06vfgTTv5 / y8WyTBz + tPoxVdSOMECHARREMOVEDS4NQz3K8zogL
有了这个,它有效。请注意,如果稍微更改DataIdentity值,您仍会收到DecryptAndDeserializeUserToken
错误消息。