问题标签 [wwsapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
139 浏览

c++ - 在 c++ WWSAPI Web 服务中处理 WS-Security PasswordDigest 模式

我使用 WWSAPI 继承了一个用 c++ 编写的现有且可工作的 Web 服务。我必须在soap头中使用passworddigest来实现基于WS-Security的安全机制,像这样:

我既不是 Web 服务专家也不是 WWSAPI 专家,但我了解 Web 服务的基础知识。我试图了解 WWSAPI 文档,但不明白从哪里开始实施这种安全性。

我通过使用绑定 WS_STRING_USERNAME_MESSAGE_SECURITY_BINDING_TYPE 进行了测试,我可以为此定义一个密码验证器回调,这似乎与一个简单的用户/密码方案一起使用。但是在哪里/如何定义密码摘要安全机制?

使用 API,我期待一个简单的设置来定义基本的摘要机制和一个回调来接收随机数、创建日期、用户名和密码,但我不明白从哪里开始。我不明白这是否需要简单的声明(绑定 + 属性 + 回调),或者我是否需要编写一些代码,例如手动解析 xml 标头。

有人使用 WS-Security 实现了 WWSAAPI Web 服务,如何实现?

0 投票
0 回答
63 浏览

c++ - 在 C++ 中使用 Windows Web 服务 API 编码 UPS Web 服务时出现问题

我有一个 c++ 应用程序,并试图使用它通过 Windows Web 服务 API 联系 UPS Web 服务。UPS 提供了一些 C# 编程示例,我已经将最简单的示例(LabelRecovery - 从 Web 服务读取标签)翻译成 C++。

C# 程序在下载时可以正常工作。运行我翻译的c++版本时,遇到错误:

也许我缺少一个内容类型设置,我尝试根据其他研究文章修改各种 CHANNEL 和 PROXY 设置但没有成功。因此,如果您仅从上面的描述中知道我缺少什么,那么您可以在此处停止阅读,请让我知道如何继续。

我不确定的程序的一个方面是尝试附加消息的 UPSSecurity 部分,它会通知 UPS 用户/密码......我从不主动将 UPSSecurity 结构链接到消息,但它可能是隐式链接的,并且我只是没有看到它。

Windows Web 服务 (WWS) 使用名为“wsutil.exe”的程序将 UPS 提供的 Web 服务描述文件(wsdl、xsd...)转换为绑定,WWS API 将使用这些绑定来创建要通信的消息。LabelRecovery 定义文件 (wsdl) 使用以下部分来描述 LabelRecoveryRequest 消息:

这个定义使它看起来像“UPSSecurity”是LabelRecovery Request消息的一部分。但我找不到可以链接我的 UPSSecurity 信息的可寻址参考。wsutil.exe 实用程序生成的“c”代码仅在注释中引用“UPSSecurity”:

具体来说,//(WS_ELEMENT_DESCRIPTION*)&UPSSecurity_xsd.globalElements.UPSSecurity_xsd_UPSSecurity,。该评论似乎推断这应该作为 SOAP 标头而不是作为 LabelRecoveryRequest 消息的一部分放置,但我无法就如何处理我的 UPSSecurity 结构、SOAP 标头或其他方式建立联系。我希望你们中的一个聪明人之前已经遇到过这个问题,并且会得到完美的回应。

提供整套代码会很长,所以我希望我的摘录能显示足够的细节,至少可以开始讨论。如果有帮助,我正在编写基于 Windows Web 服务 API 的“服务模型”。

预先感谢您的协助。

(我在 Visual Studio 17 中构建它,并在最新更新的 Windows 10 21H1 上运行。)