我需要构建一个c#web客户端,它可以使用现有的使用wsse安全性的java weblogic Web服务。更改现有的java weblogic Web服务以使用C#不是一种选择。我希望很容易找到解决方案。
有关客户端,我使用C#与Microsoft.Web.Services3在2010年的VisualStudio我知道Web.Services3已被弃用,但我无法找到一个WCF的解决方案,工作在那里我可以添加所需的WSSE:安全标签,以及Web服务所需的顺序。
使用Web.Service3,生成的soap请求不包含soap正文中所需的soap属性标记。使用soapUI进行测试,工作和非工作请求之间的唯一区别是soap体中缺少“wsmp:”标记。如果我能找到一种方法将“wsmp:”插入到soap body的method标签中,那么c#请求就可以了。
在soap主体中,缺少Web服务定义的soap标头标签“wsmp:”。有没有办法在c#中将此标记插入客户端请求?
这是需要的身体 -
`<soapenv:Body>
<wsmp:getForm xmlns:wsmp="http://www.microstrat.com/wsmpServices/1.0">
<wsmp:documentid><documentid>8502</documentid><formnumpacketid /></wsmp:documentid>
</wsmp:getForm>
</soapenv:Body>`
这是生成的主体 - 请注意getForm而不是wsmp:getForm标记:
`<soapenv:Body>
<getForm xmlns="http://www.microstrat.com/wsmpServices/1.0">
<documentid xmlns=""><documentid>8502</documentid><formnumpacketid /></documentid>
</getForm>
</soapenv:Body>`
有关如何从生成内容转到需要内容的任何帮助或指示?
答案 0 :(得分:0)
看起来在C#end生成的xml确实有效,所以我想Java服务器的特性正在迫使你这个要求。
我不知道WSE库的内部足以强制库使用特定的xml名称空间前缀,但这里有一种方法我成功地用我认为合适的方式重写SOAP xmls:{ {3}}
干杯, Anash