Tengo un back-end VB6 para un sitio ASP clásico. Ese VB luego llama a un servicio web en el mismo servidor utilizando MSXML2.XMLHTTP. Esto funciona todos nuestros servidores menos uno. Si configuro el sitio del servicio web para que acepte el inicio de sesión anónimo, funcionará, sin embargo, si fuerzo solo la seguridad integrada, MSXML devuelve un error de acceso denegado.Acceso denegado utilizando MSXML
estoy usando código del ejemplo here.
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
Editar: Siguiendo el consejo de AnthonyWJones Bajé la lista de verificación y que todavía no está funcionando. Usando Fiddler muestra una única solicitud con una respuesta 401. La pestaña de autenticación muestra:
No Proxy-Authenticate Header is present.
WWW-Authenticate Header is present: Negotiate
WWW-Authenticate Header is present: NTLM
Sin embargo, noté un comportamiento extraño. Cuando llamo al sitio web usando las credenciales del usuario que ha iniciado sesión en el escritorio remoto, funcionará. Me sale negociar, desafío, luego un 200 y funcionará. ¿Alguna idea de por qué esto funcionaría cuando el usuario inicia sesión en el escritorio remoto pero no en otras ocasiones?
¿Qué sistema operativo está ejecutando el cliente roto? ¿El nombre de host del servidor de destino es "simple" (¿contiene puntos?). De lo contrario, la asignación a la zona de Intranet se lleva a cabo a través de un script proxy (http://msdn.microsoft.com/en-us/library/bb250483(VS.85).aspx) y, por lo tanto, si su aplicación cliente no está No use el proxy por alguna razón, la asignación de zona fallaría y usted golpearía un comportamiento como este. – EricLaw
Windows Server 2003 R2 es el sistema operativo que estoy usando. El nombre de host del servidor de destino es simple y no contiene puntos. Si navego al servicio web usando el navegador, aparece como la zona de intranet local.En Opciones de Internet -> Conexiones -> Configuración de LAN, ninguno de los 3 cuadros está marcado. ¿Tal vez está intentando usar una configuración diferente cuando el explorador no está cargado para ese usuario? – Ryan