我有一个VB6后端用于经典ASP网站。然后,该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,它可以正常工作。有什么想法为什么只有在用户通过远程桌面登录时才能正常工作而其他时间不行?