Я реализовал свой собственный пользовательский IAuthenticator
под названием OAuth2BearerAuthenticator
, которая в основном берет в ClientId
и ClientSecret
и перед любой запрос был сделан, он проверяет, если он имеет действительный однонаправленного Токен - если не будет использовать учетные данные клиента уйти и «Обновить» токен, прежде чем приступать к исходному запросу.RestSharp OAuth2 Bearer Аутентификация В противном случае с Access Denied
Authenticate
метод этого пользовательского аутентификатора содержит следующее:
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));
}
Я проверил, что носителем маркера, что производящая действительно - я могу успешно запросить данные из API я пытаюсь получить доступ с один и тот же заголовок авторизации маркера на предъявителя в DHC (расширение Chrome REST)
Я также подтвердил, что он не возвращается раньше из инструкции if (any authorization paramaters)
.
Однако RestSharp не удается с ответом "HTTP Basic: Access denied.\n"
Я не знаю, если это уместно, но ответ также содержит заголовок WWW-Authenticate
со значением Basic realm=\"Web Password\"
Любая помощь очень ценится. Благодарю.