Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

712
Vistas
RestSharp HttpBasicAuthentication - ejemplo

Tengo un cliente WPF que usa RestSharp y el servicio WEB API. Intento usar HttpBasicAuthenticator de la siguiente manera:

 RestRequest login = new RestRequest("/api/users/login", Method.POST); var authenticator = new HttpBasicAuthenticator("admin","22"); authenticator.Authenticate(Client, login); IRestResponse response = Client.Execute(login);

La solicitud POST se ve así:

 POST http://localhost/api/users/login HTTP/1.1 Authorization: Basic YWRtaW46MjI= Accept: application/json, application/xml, text/json, text/x-json, text/javascript, text/xml User-Agent: RestSharp/105.1.0.0 Host: dellnote:810 Content-Length: 0 Accept-Encoding: gzip, deflate Connection: Keep-Alive
  1. ¿Cómo proceso este campo, Authorization: Basic YWRtaW46MjI= en el lado del servidor? ¿Obtengo el nombre de usuario y la contraseña de este encabezado?
  2. ¿Cómo devuelvo el token de seguridad del servidor al cliente y lo guardo en el lado del cliente?

Necesito obtener una autenticación simple basada en el token de seguridad, pero no puedo encontrar un ejemplo que describa todos los aspectos de este proceso. ¿Puede alguien indicarme algún ejemplo completo que incluya el lado del cliente y del servidor (y use RestSharp)?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

new SimpleAuthenticator("username", username, "password", password) NO funcionó conmigo.

Sin embargo, lo siguiente funcionó:

 var client = new RestClient("http://example.com"); client.Authenticator = new HttpBasicAuthenticator(userName, password); var request = new RestRequest("resource", Method.GET); client.Execute(request);
over 4 years ago · Santiago Trujillo Denunciar

0

De la documentación de RestSharp:

 var client = new RestClient("http://example.com"); client.Authenticator = new SimpleAuthenticator("username", "foo", "password", "bar"); var request = new RestRequest("resource", Method.GET); client.Execute(request);

La URL generada para esta solicitud sería http://example.com/resource?username=foo&password=bar

Por lo tanto, obtiene la contraseña como cualquier otro parámetro (aunque se recomienda usar el método POST y luego GET, por razones de seguridad).

En cuanto a las cookies, consulte esto: https://msdn.microsoft.com/en-us/library/system.windows.application.setcookie.aspx

https://msdn.microsoft.com/en-us/library/system.windows.application.getcookie.aspx

Espero eso ayude

over 4 years ago · Santiago Trujillo Denunciar

0

Lo siguiente funcionó para mí:

 private string GetBearerToken() { var client = new RestClient("http://localhost"); client.Authenticator = new HttpBasicAuthenticator("admin", "22"); var request = new RestRequest("api/users/login", Method.POST); request.AddHeader("content-type", "application/json"); request.AddParameter("application/json", "{ \"grant_type\":\"client_credentials\" }", ParameterType.RequestBody); var responseJson = _client.Execute(request).Content; var token = JsonConvert.DeserializeObject<Dictionary<string, object>>(responseJson)["access_token"].ToString(); if(token.Length == 0) { throw new AuthenticationException("API authentication failed."); } return token; }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda