Получение несанкционированных запросов после преобразования клиента Api RestSharp из .Net 4.7.2 в .Чистое ядро 5.0

#restsharp

Вопрос:

Я преобразую консольное клиентское приложение API, созданное в .Net 4.7.2, в консольное приложение .Net Core 5.0. Я чувствовал, что могу превратить все в .Net Core 5.0 (большая часть кода была вырезана и скопирована), и приложение запускается, но каждый мой запрос возвращается несанкционированным.

Вот мой РестКлиент

 Uri basePath = new Uri("lt;urlgt;"); string userName = "lt;userNamegt;"; string password = "lt;passwordgt;"; RestClient restClient = new RestClient(); restClient = new RestClient(basePath); restClient.Authenticator = new Authenticator(basePath, userName, password); restClient.FollowRedirects = true; string EmpId = "lt;employeeIdgt;"; RestRequest restRequest = new RestRequest("Employees/{EmpId}", Method.GET);  restRequest.AddUrlSegment("EmpId", EmpId );  var response = restClient.Executelt;Payloadlt;Employeegt;gt;(restRequest);  

ответ.Данные всегда равны нулю и являются ответом.Код состояния = Неавторизованный

Вот мой аутентификатор

 public class Authenticator : IAuthenticator  {     private readonly CredentialCache credentials = new CredentialCache();  public Authenticator(Uri loginServerUrl, string username, string password) {  if (loginServerUrl == null)  {  throw new ArgumentNullException(nameof(loginServerUrl));  }   registerAuthenticationModule(loginServerUrl);  credentials.Add(loginServerUrl, AuthenticationModule.API_AUTHENTICATION, new NetworkCredential(username, password, loginServerUrl.Host)); }  private static AuthenticationModule registerAuthenticationModule(Uri loginServerUrl) {  IEnumerator registeredModules = AuthenticationManager.RegisteredModules;  AuthenticationModule authenticationModule;   while (registeredModules.MoveNext())  {  object current = registeredModules.Current;  if (current is AuthenticationModule)  {  authenticationModule = (AuthenticationModule)current;  if (authenticationModule.LoginServerUrl.Equals(loginServerUrl))  {  return authenticationModule;  }  }  }   authenticationModule = new AuthenticationModule(loginServerUrl);  AuthenticationManager.Register(authenticationModule);  return authenticationModule; }  public void Authenticate(IRestClient client, IRestRequest request) {  request.Credentials = credentials; } }  

Вот мой модуль аутентификации

 public class AuthenticationModule : IAuthenticationModule {  internal const string API_AUTHENTICATION = "ApiAuthentication";  private readonly CredentialCache credentialCache = new CredentialCache(); private readonly Uri loginServerUrl;  internal CredentialCache CredentialCache {  get  {  return credentialCache;  } }  internal Uri LoginServerUrl {  get  {  return loginServerUrl;  } }  internal AuthenticationModule(Uri loginServerurl) {  if (loginServerurl == null)  {  throw new ArgumentNullException(nameof(loginServerurl));  }   loginServerUrl = loginServerurl; }  public Authorization Authenticate(string challenge, WebRequest request, ICredentials credentials) {  Authorization result = null;   if (request == null || credentials == null)  {  result = null;  }   else  {  NetworkCredential creds = credentials.GetCredential(LoginServerUrl, API_AUTHENTICATION);  if (creds == null)  {  return null;  }   string token = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}:{1}", creds.UserName, creds.Password)));   result = new Authorization(string.Format("Basic {0}", token));  }   return result; }  public string AuthenticationType {  get { return API_AUTHENTICATION; } }  public bool CanPreAuthenticate {  get { return false; } }  public Authorization PreAuthenticate(WebRequest request, ICredentials credentials) {  return null; } }  

Я знаю, что в прошлом у меня были проблемы с некоторыми сторонними API-интерфейсами клиента REST, которые не включают учетные данные для запросов, полученных в результате ответа на перенаправление с сервера. Вот почему я использую RestSharp. Кто-нибудь может мне здесь помочь?

Спасибо!