none
Consumir un servicio Web con usuario y clave

    Question

  • Estimados como estan, queria ver si me pueden ayudar, tengo que consumir un servicio web en mi apliccaion, tengo la direccion del web service y el web metodo que tengo que usar.

     

    Pero ademas de esto me dan el usuario y contraseÑa, pero no se donde tengo que setear estas credenciales.

    Cuando agrego la referencia web a miproyecto no veo por donde indicar esta informacion.

    Cuando instancio el servicio web tampoco veo nada de usuario y clave, porfa no se si me pueden ayudar.

     wsCredit.wsReport wsReporte = new Presenta.wsCredit.wsReport();
      string mensaje;
      int valor=0;
      DataSet ds= wsReporte .ObtenerReporte("C", "22222222",out valor,out mensaje);
      dataGridView1.DataSource = ds;

     

    Donde deberia poner el usuario y la clave..

    Tuesday, June 14, 2011 4:09 PM

All replies

  • HOla

     

    Yo he estado por asi decirlo travesiando con esto de los web service y el unico lugar donde he necesitado Usuario y contraseña es en el Web.Config que es para poder pegarte a la base de datos.

     

    De ahi los usuarios y contraseñas que puedes usar es para hacer nose un loging y entrar a la aplicacion.

     

    Saludos

    Tuesday, June 14, 2011 4:24 PM
  • una forma interesante de hacerlo es en el header del servicio web

    Authentication for Web Services (using SOAP headers)


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Tuesday, June 14, 2011 4:27 PM
  • Gracias amigos por las respuestas, pero igual no se donde deberia poner esta informacion para consumir el servicio web, la persona que creo el serviciome dio solo estos datos

    WebService
    WebMethod
    Usuario
    Clave

    Ya tengo agregada la referencia al servicio,pero al querer usarlo al llamar al metodo me retorna un mensaje de error

    "Error de autenticación/autorización",que supongo es un mensaje que personalizado del que creo el servicio.

    Entonces intente algo como esto

    ICredentials credential = new NetworkCredential("usuario", "clave");
    wsReporte.Credentials = credential;
    DataSet ds = wsReporte.ObtenerReporteFull("C", "2222222222",out valor,out mensaje);

     

    Pero igual tengo el mismo mensaje,

    saludos

     

    Tuesday, June 14, 2011 5:03 PM
  • pero has creado el web reference ? si alli el metodo que obtienes no tiene como parametro el usuario y password entocnes ya puedes descartar que sea en el metodo

    entonces podrias ser como estas usando por medio de las Credentials

     

    por ahi podrias consultar al creador del servicio, para consultar si la info del login esta correcta


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Tuesday, June 14, 2011 5:11 PM
  • Hola, a mí me pasó algo parecido y no me lo resolvió el network credential, lo resolví así:
        

    1º Instala en la máquina que consume el servicio web autenticado Microsoft.Web.Services3
        O por lo menos descomprime y referencia a la dll del Microsoft.Web.Services3

    2º Genera la clase proxy del servicio web que vas a consumir a través de la linea de comandos de visual studio con el comando wsdl
               
    3º Edita esta clase proxy generada por el comando wsdl y cambia la clase base de la que hereda por omisión por la de Microsoft.Web.Services3 que es Microsoft.Web.Services3.WebServicesClientProtocol
                
    4º En el código que invoque al web service escribe el código correspondiente a la autenticación así:

          NombreClaseProxy wsReporte= new NombreClaseProxy();
          
          Microsoft.Web.Services3.Security.Tokens.UsernameToken userToken;
          Microsoft.Web.Services3.SoapContext requestContext;
          
          userToken = new Microsoft.Web.Services3.Security.Tokens.UsernameToken(usuario,
                                             contraseña,
                                             Microsoft.Web.Services3.Security.Tokens.PasswordOption.SendPlainText);
          // Microsoft.Web.Services3.WebServicesClientProtocol debe ser la clase base de la clase proxy
          requestContext = wsReporte.RequestSoapContext;
          requestContext.Security.Tokens.Add(userToken);
          // en mi caso estas 2 propiedades deben estar a false
          requestContext.Security.MustUnderstand = false;
          requestContext.Security.DidUnderstand = false;
           // Por aquí invoca al método
          wsReporte.ObtenerReporteFull("C", "2222222222",out valor,out mensaje);
    

    Si te vale marca la respuesta como válida. Saludos
    Wednesday, June 15, 2011 5:01 PM
  • Gracias Fisli por la ayuda pero no me funciono, contacte con los que hicieron el web service a ver que indiquen como usar, pero aun no tengo respuesta.

     

    Saludos

    Wednesday, June 15, 2011 11:02 PM
  • Buenas tardes

     Quisiera me puedas informar lo siguiente el WS que estas consumiendo desde tu aplicación esta hecho en .Net también o en Java, en mi caso lo que te estaría faltando es lo siguiente:

    A la variable que instancia a tu WS asígnale la siguiente configuración te adjunto un ejemplo:

    wsTrabajo wsProxy = new wsTrabajo();

    wsProxy.Proxy = new WebProxy(10.10.10.20, 8080);

    wsProxy.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;

    Debes primero verificar si se muestran la propiedad Proxy a tu variable instan ciada al WS(wsProxy) de ser así asígnale una IP y puerto de salida valido de tu empresa y efectúas la prueba respectiva.

    Si no se muestra la propiedad de Proxy hay que efectuar unos cambios al código generado al momento de instancia al WS y para eso deberías enviarme tu código para orientarme un poco

    Se por lo que estas pasando debido a que pase mas de un mes tratando de solucionar esto.

    Saludos cordiales

    Monday, June 27, 2011 7:54 PM
  • yo me encuentro en una situacion igual no se como enviar el usuario y el pass de autenticacion si alguien me puede ayudar
    Thursday, February 16, 2012 11:39 PM
  • Hola amigos.

    Estoy tratando de consumir un web service que al parecer esta hecho en java . 

    pero necesito enviar un usuario y password antes de llamar al metodo a invocar.

    el problema es que no hay ninguna clase ni metodo ni propiedad para asignarle el usuario y password.

    el web service es:

    http://pruebaaduana.sunat.gob.pe/ol-ad-itseida-ws/ReceptorService.htm?wsdl

    ayuda por favor. lo estoy desarrollando con .NET


    • Edited by Ing. RCT Thursday, October 17, 2013 7:55 PM
    Thursday, October 17, 2013 7:50 PM
  • buenas tardes amigos.

    podrían echarme una manito con este tema por favor.

    Estoy tratando de consumir ese web service pero me dicen que debo hacer un "TOKEN" pero no se como hacerlo. el web service es: http://pruebaaduana.sunat.gob.pe/ol-ad-itseida-ws/ReceptorService.htm?wsdl

    Tuesday, October 22, 2013 7:15 PM