5

Sto utilizzando il codice seguente per utilizzare token di accesso JWT da un servizio Asp.net Web Api 2.2. Ho seguito this article per configurare un server di autorizzazione nel servizio Web Api. Sto usando RestSharp nel client.Come utilizzare token di accesso JWT e reclami utente utilizzando RestSharp

codice client:

  var client = new RestClient(http://localhost:58030); 
      client.Timeout = 30000; 
      var request = new RestRequest(@"/Oauth/Token", Method.POST); 
      request.AddHeader("content-type", "application/x-www-form-urlencoded"); 
      request.AddHeader("grant_type", "password"); 
      request.AddHeader("username", "[email protected]"); 
      request.AddHeader("password", "[email protected]"); 
      IRestResponse response = client.Execute(request); 
      result = response.Content; 

Di conseguenza sto ottenendo seguente errore:

{ 
    "error_description":"grant type not supported", 
    "error":"unsupported_grant_type" 
} 
  1. Perché sto ottenendo questo errore e come posso risolvere questo problema?
  2. Come accedere ai reclami come nome utente nel client?
  3. In alternativa, come posso utilizzare Identity Model per consumare il servizio?

risposta

-1

E 'una vecchia questione e probabilmente avete un'implementazione ormai ma FWIW ecco la soluzione che ha funzionato per me

var client = new RestClient("http://blahblah/"); 
var request = new RestRequest("/token", Method.POST); 
// all parameters need to go in body as string 
var encodedBody = string.Format("username={0}&password={1}&grant_type=password", model.Username, model.Password); 
request.AddParameter("application/x-www-form-urlencoded", encodedBody, ParameterType.RequestBody); 
request.AddParameter("Content-Type", "application/x-www-form-urlencoded", ParameterType.HttpHeader); 
var response = client.Execute(request); 
1

Hai aggiunto grant_type, username e password alla Header della richiesta HTTP, dovrebbe essere nella parte Body.

Problemi correlati