【发布时间】:2011-12-24 07:31:38
【问题描述】:
我需要构建一个可以使用现有的使用 wsse 安全性的 java weblogic web 服务的 c# web 客户端。更改现有的 java weblogic web 服务以使用 C# 不是一种选择。我希望很容易找到解决方案。
对于客户端,我在 VisualStudio 2010 中将 c# 与 Microsoft.Web.Services3 一起使用。我知道 Web.Services3 已被弃用,但我找不到可以添加所需 wsse:Security 的 WCF 解决方案标签,并按照 Web 服务所需的顺序。
使用Web.Service3,生成的soap请求在soap主体中不包含需要的soap属性标签。使用soapUI 进行测试,工作请求和非工作请求的唯一区别是soap 主体中缺少“wsmp:”标签。如果我能找到一种方法将“wsmp:”插入到肥皂主体的方法标记中,那么 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>`
关于如何从生成到需要的任何帮助或指示?
【问题讨论】:
-
使用 WCF 时发生了什么?它应该可以工作。 WSE 不太可能也能正常工作,因为它并不完全符合标准。此外,如果您必须做一些不直接支持的事情,WCF 比 WSE 可扩展性强得多,并且得到积极支持,拥有庞大的用户社区来帮助您。