Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

719
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda