RestSharp OAuth2 Träger-Authentifizierung Fehlschlägt Mit Zugriff Verweigert
Implementierte ich meine eigenen IAuthenticator
genannt OAuth2BearerAuthenticator
die im Grunde dauert in ClientId
und ClientSecret
werden und bevor eine Anfrage gestellt wird, überprüft er, ob es ein gültiges Bearer-Token - wenn nicht, wird die client-Anmeldeinformationen Weg zu gehen und "Aktualisieren" das token, bevor Sie mit der ursprünglichen Anfrage.
Den Authenticate
Methode dieser benutzerdefinierten authentifikator enthält die folgenden:
public void Authenticate(IRestClient client, IRestRequest request)
{
if (!bearerTokenExpiration.HasValue || bearerTokenExpiration.Value < DateTime.Now)
{
RefreshBearerToken();
}
if (request.Parameters.Any(p => p.Name.Equals("Authorization", StringComparison.OrdinalIgnoreCase)))
{
return;
}
request.AddHeader("Authorization", string.Format("Bearer {0}", bearerToken));
}
Habe ich verifiziert, dass die Inhaber-token, es ist die Erzeugung gültig ist, kann ich erfolgreich anfordern von Daten aus der API bin ich versucht, den Zugang mit dem gleichen Inhaber-token authorization-header in DHC (Chrom-REST-Erweiterung)
Habe ich auch verifiziert, dass es nicht wieder frühzeitig aus dem if (any authorization paramaters)
- Anweisung.
Jedoch RestSharp scheitert mit der Antwort "HTTP Basic: Access denied.\n"
Ich weiß nicht, ob es relevant ist, aber die Antwort enthält auch eine WWW-Authenticate
- header mit dem Wert Basic realm=\"Web Password\"
Jede Hilfe wird sehr geschätzt. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Denke ich, wenn Sie mit bearer-token zur Authentifizierung Ihre Anfrage können Sie auf diese Weise:
Hoffe, es funktioniert!