Используя .net 6.0 и RestSharp 110.0.1, когда я следую примеру из документации RestSharp (ссылка ниже), я получаю сообщение об ошибке «RestClient.Authenticator не может быть назначен — он доступен только для чтения».
Документация RestSharpGitHub Gist для кода документации
public class WebInteractionsAuthenticator : AuthenticatorBase {
readonly string _baseUrl;
readonly string _clientId;
readonly string _clientSecret;
public WebInteractionsAuthenticator(string baseUrl, string clientId, string clientSecret) : base("") {
_baseUrl = baseUrl;
_clientId = clientId;
_clientSecret = clientSecret;
}
protected override async ValueTask<Parameter> GetAuthenticationParameter(string accessToken) {
Token = string.IsNullOrEmpty(Token) ? await GetToken() : Token;
return new HeaderParameter(KnownHeaders.Authorization, Token);
}
async Task<string> GetToken() {
var options = new RestClientOptions(_baseUrl);
using var client = new RestClient(options) {
[tag:// ERROR IS AT FOLLOWING LINE]
Authenticator = new HttpBasicAuthenticator(_clientId, _clientSecret),
};
var request = new RestRequest("oauth2/token")
.AddParameter("grant_type", "client_credentials");
var response = await client.PostAsync<TokenResponse>(request);
return $"{response!.TokenType} {response!.AccessToken}";
}
}
Я пробовал искать альтернативы и не могу найти ничего, чтобы решить эту проблему.





Как сказал Устаревший, вместо этого мы должны использовать RestClientOptions.Authenticator, поэтому я предлагаю вам попробовать следующие коды:
var options = new RestClientOptions();
options.Authenticator = new HttpBasicAuthenticator("","");
using var client = new RestClient(options)
{
};