我使用 WCF 构建了一个 Web 服务,并决定将消息安全性(wshttpbinding)与自定义身份验证(我自己的数据库)和 X.509 证书一起使用。我想知道客户端如何使用 SOAP 消息调用 Web 服务以验证和使用我的服务。我想知道我应该在soap header部分添加什么才能调用我的服务,因为我必须从非WCF客户端调用这个webservice。
任何帮助将不胜感激
问候
我使用 WCF 构建了一个 Web 服务,并决定将消息安全性(wshttpbinding)与自定义身份验证(我自己的数据库)和 X.509 证书一起使用。我想知道客户端如何使用 SOAP 消息调用 Web 服务以验证和使用我的服务。我想知道我应该在soap header部分添加什么才能调用我的服务,因为我必须从非WCF客户端调用这个webservice。
任何帮助将不胜感激
问候
这取决于您要如何使用证书的方式。您可以使用消息或传输安全,其中传输意味着 HTTPS,并且它具有高度互操作性,而消息意味着 WS-Security,您的客户端通常需要使用一些特殊的 API(手动实现 WS-Security 和相关协议是一项艰巨的任务)。所以主要取决于Non-WCF客户端的类型。有许多用于 Java 或 C++ 的 API,还有一些用于 PHP,但我不知道有任何 API 为 Android、iOS 或 Windows Mobile 提供 WS-Security 功能。
用户名和密码也可以在消息中或通过传输标头传输。前一种方法通常通过标准化的用户名令牌配置文件实现,该配置文件仅包含一组预定义的 SOAP 标头(WCF 将为您执行此操作)。这些标头没有什么特别之处,因此即使是没有 WS-Security API 的非 WCF 客户端也应该能够轻松地使用该服务。后一种方法通常通过基本 HTTP 身份验证和 HTTPS 一起实现,它可能是最具互操作性的解决方案(但如果您在 IIS 中托管服务并且不想使用 Windows 帐户进行身份验证,则 WCF 站点可能会遇到一些挑战)。