none
Consumir WebService con Autenticación, desde ASP 3.0 RRS feed

  • Pregunta

  • Buen día!

    Tengo un problema con un WebService, actualmente sé como comsumirlo y como leer los datos que me arroje pero esto solo un contexto anónimo de autenticación, es decir, el problema es que yo necesito habilitar la Autenticación de Windows del lado del WebService, si fuese desde .NET sólo necesitaría pasarle las credenciales mediante la clase NetworkCredentials seteo el usuario y el password y listo, pero como puedo hacer esto desde ASP?, es decir, si el WS sólo permite el acceso a "USUARIO", "123", cómo hago para pasarle estas credenciales?, aquí abajo está mi funcion para levantar el request y cargar el XML que el WS me arroja

    Code Snippet

    Function CreateSOAPRequest() soapServer = "localhost" soapPath = "/MyService/Service.asmx" strWebMethod = "GetData" Dim xmlhttp, strSoap set xmlhttp = Server.CreateObject("Msxml2.ServerXMLHTTP") strSoap = "<?xml version=""1.0"" encoding=""utf-8""?>" & _ "<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & _ "<soap:Body>" & _ "<" & strWebMethod & " xmlns=""http://tempuri.org/"" />" & _ "</soap:Body>" & _ "</soap:Envelope>" 'Send Soap Request xmlhttp.Open "POST", "http://" & soapServer & soapPath, False ' False = Do not respond immediately xmlhttp.setRequestHeader "Man", "POST " & soapPath & " HTTP/1.1" xmlhttp.setRequestHeader "Host", soapServer xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8" xmlhttp.setRequestHeader "SOAPAction", "http://tempuri.org/" & strWebMethod xmlhttp.send(strSoap) 'response.Write(strSoap) If xmlhttp.Status = 200 Then ' Response from server was success CreateSOAPRequest = xmlhttp.responseText Else ' Response from server failed CreateSOAPRequest = ("Temporary Error.") End If set xmlhttp = nothing End Function


    sábado, 6 de septiembre de 2008 15:52

Respuestas

Todas las respuestas

  • Puede ser que te sirva el componente Microsoft SOAP
     
    Mira acá tienes un ejemplo:
     
     
     
     
     
    • Marcado como respuesta Phil Glez lunes, 25 de noviembre de 2013 21:27
    domingo, 7 de septiembre de 2008 17:10
  • Gracias por responder, lo que pasa esque ya traía una implementación hecha y cambiarlo al objeto SOAP iba a requerir trabajo extra, como sea gracias, ya encontré una solución muy sencilla que por falta de información acerca del objeto no había podido encontrar, la solución es que en el método Open al hacer el POST del XML sólo se agregan las credenciales del usuario y listo, esto se resuelve de la siguiente manera:

     

    Code Snippet

    Function CreateSOAPRequest()
    soapServer = "localhost"
    soapPath = "/MyService/Service.asmx"
    strWebMethod = "GetData"
        Dim xmlhttp, strSoap
        set xmlhttp = Server.CreateObject("Msxml2.ServerXMLHTTP")

        strSoap = "<?xml version=""1.0"" encoding=""utf-8""?>" & _
        "<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & _
          "<soap:Body>" & _
            "<" & strWebMethod & " xmlns=""http://tempuri.org/"" />" & _
          "</soap:Body>" & _
        "</soap:Envelope>"

        'Send Soap Request

        xmlhttp.Open "POST", "http://" & soapServer & soapPath, False,"miUsuario","miPassword" 'Aquí se ponen las credenciales, lo demás se mantiene igual.

     

     

     

    Saludos!

    viernes, 12 de septiembre de 2008 21:18