我正在尝试连接到使用 wsHttpBinding 和 Windows 身份验证的 Web 服务。如果我配置了用户名、密码和域,我可以使用 WCFStorm 进行连接。
我需要在 SOAP 信封上进行身份验证,因为我无法访问诸如 c# 之类的编程语言。
基本上,我能做的就是发出一个包含 SOAP 信封的 POST 请求。如何构造 SOAP 信封以便 Windows 身份验证起作用?
我正在尝试连接到使用 wsHttpBinding 和 Windows 身份验证的 Web 服务。如果我配置了用户名、密码和域,我可以使用 WCFStorm 进行连接。
我需要在 SOAP 信封上进行身份验证,因为我无法访问诸如 c# 之类的编程语言。
基本上,我能做的就是发出一个包含 SOAP 信封的 POST 请求。如何构造 SOAP 信封以便 Windows 身份验证起作用?
如果您确实需要使用 SOAP POST 进行身份验证,则完全有可能。但是您需要在 WCF 中实现 ServiceAuthorizationManager 类并将其与用于承载端点的给定 ServiceHostFactory 相关联。
但是,我将假设 WCF 服务对您来说是一个黑盒子,因为您说您“无法访问诸如 c# [原文如此] 之类的编程语言”。我会假设 .net 框架方面是你无法控制的。
我将假设您可以完全访问客户端,但不能使用 .net 进行远程调用。
您要做的是将 Kerberos 或 NTLM 身份验证标头放入您的 HTTP 请求中。通常被称为 Windows 身份验证的东西实际上是这两种协议之一。现在 NTLM 在配置方面是一个更简单的协议,如果您的编程环境支持它,它将是我建议的协议。然而,Kerberos 得到了更广泛的支持。
至于如何在您正在使用的框架中使用带有 HTTP 的 NTLM/Kerberos。没有更多信息,我帮不了你。
您可能会发现以下有趣的内容:http: //docs.oracle.com/javase/6/docs/technotes/guides/net/http-auth.html