none
Restsharp no trabaja con una aplicación de escritorio RRS feed

  • Pregunta

  • El siguiente fragmento de código me regresa un token de autorización

    var client = new RestClient("http://serverip:port/ords/xx_portal_dev/oauth/token");

              var request = new RestRequest(Method.POST); 

              request.AddHeader("cache-control", "no-cache");           

    request.AddHeader("Connection", "keep-alive");

                request.AddHeader("Cookie", "BCSI-CS-8eb7fa809579930b=1");

                request.AddHeader("Content-Length", "29");

                request.AddHeader("Accept-Encoding", "gzip, deflate");

                request.AddHeader("Host", "serverip:port"); 

              request.AddHeader("Cache-Control", "no-cache");

                request.AddHeader("Accept", "*/*");

                request.AddHeader("Authorization", "Basic EncodingStringData"); 

              request.AddHeader("Content-Type", "application/x-www-form-urlencoded");

                request.AddParameter("undefined", "grant_type=client_credentials", ParameterType.RequestBody);

                IRestResponse response = client.Execute(request);

    Tengo una servicio WCF y este codigo trabaja bien, sin embargo al pasarlo a una aplicación de escritorio (windows forms, class libary) siempre obtengo un mensaje de error con la siguiente descripción

    Unauthorized "Access to this resource is protected"

    Alguna idea para determinar porqué esto trabaja con WCF pero con una aplicación de escritorio no?



    • Editado Orion Admin jueves, 5 de diciembre de 2019 23:35
    jueves, 5 de diciembre de 2019 23:32

Todas las respuestas

  • hola

    Estas seguro que es un servicio de WCF lo que invocas ? lo pregunto porque lo dudo

    Los servicio de WCF la url termina en .svc y para invocarlo deberia crear un Proxy al servicio mediante una Service Reference

    Ademas deberias crear el mensaje SOAP que es un xml con la estructura del servicio que quieres invocar

    Lo que muestras alli no es un WCF sino un WebApi Rest, por eso trabaja con verbos Http, en este caso POST

    >>Unauthorized "Access to this resource is protected"

    lo que te esta indicando es que no estas autorizado, quizas le proporcinas las credenciales de forma incorrecta

    que seria esto:

       request.AddParameter("undefined", "grant_type=client_credentials", ParameterType.RequestBody);

    alli no le indicas usuario y password para que valide y te genere el token

    Secure a Web API with Individual Accounts and Local Login in ASP.NET Web API 2.2

    valida en el titulo "Get an Access Token" como en el body asigna el

       grant_type: 'password',
       username: self.loginEmail(),
       password: self.loginPassword()

    quizas en tu caso eso del

    ParameterType.RequestBody

    no este funcionando

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 6 de diciembre de 2019 20:12