Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RestSharp HttpBasicAuthentication - example

I have a WPF client using RestSharp and WEB API Service. I try to use HttpBasicAuthenticator as follows:

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

The POST request looks like this:

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. How do I process this field, Authorization: Basic YWRtaW46MjI= on the server side? Do I get username and password from this header?
  2. How do I return security token from server to client and save it on the client side?

I need to get simple authentication based on security token but cannot find example that describes all sides of this process. Can someone point me to some full example that includes client and server side (and uses RestSharp).

like image 610
RomaS Avatar asked Aug 05 '15 13:08

RomaS


People also ask

What is RestSharp used for?

RestSharp is a comprehensive, open-source HTTP client library that works with all kinds of DotNet technologies. It can be used to build robust applications by making it easy to interface with public APIs and quickly access data without the complexity of dealing with raw HTTP requests.

What is RestSharp Netcore?

RestSharp is an open source HTTP client library that makes it easy to consume RESTful services. RestSharp provides a developer friendly interface to work with RESTful services while abstracting the internal intricacies of working with HTTP requests. RestSharp supports both synchronous and asynchronous requests.

What is HttpBasicAuthenticator?

The HttpBasicAuthenticator allows you pass a username and password as a basic Authorization header using a base64 encoded string.


1 Answers

new SimpleAuthenticator("username", username, "password", password) did NOT work with me.

The following however worked:

var client = new RestClient("http://example.com"); client.Authenticator = new HttpBasicAuthenticator(userName, password);  var request = new RestRequest("resource", Method.GET); client.Execute(request); 
like image 106
Gerhard Powell Avatar answered Oct 08 '22 13:10

Gerhard Powell