我有一个经典 ASP 站点的 VB6 后端。然后,该 VB 使用 MSXML2.XMLHTTP 调用同一服务器上的 Web 服务。这适用于我们所有的服务器,但只有一个。如果我将 Web 服务站点设置为接受匿名登录,它将起作用,但是如果我强制仅集成安全 MSXML 返回访问被拒绝错误。
Set objDom = CreateObject("MSXML2.DOMDocument")
Set objXmlHttp = CreateObject("MSXML2.XMLHTTP")
' Load XML
objDom.async = False
objDom.loadXML XmlBody
' Open the webservice
objXmlHttp.Open "POST", AsmxUrl, False
' Create headings
objXmlHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
objXmlHttp.setRequestHeader "SOAPAction", SoapActionUrl
' Send XML command
objXmlHttp.send objDom.xml
编辑:按照 AnthonyWJones 的建议,我查看了清单,但它仍然无法正常工作。使用 Fiddler 它显示一个带有 401 响应的请求。身份验证选项卡显示:
No Proxy-Authenticate Header is present.
WWW-Authenticate Header is present: Negotiate
WWW-Authenticate Header is present: NTLM
我确实注意到了一个奇怪的行为。当我使用登录到远程桌面的用户的凭据调用该网站时,它将起作用。我得到谈判,挑战,然后是200,它会起作用。任何想法为什么当用户通过远程桌面登录而不是其他时间时这会起作用?