Instância única HttpClient com diferentes cabeçalhos de autenticação

Dado que o .net HttpClient foi projetado com a reutilização em mente e deve serlonga vida evazamentos de memória foram relatados em instâncias de curta duração. Quais linhas de guia existem nas quais você deseja fazer chamadas repousantes para um determinado terminal usando tokens de portador diferentes (ou qualquer cabeçalho de autorização) ao chamar o terminal para vários usuários?

private void CallEndpoint(string resourceId, string bearerToken) {
  httpClient.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("bearer", bearerToken);
  var response = await httpClient.GetAsync($"resource/{resourceid}");
}

Dado que o código acima pode ser chamado por qualquer número de threads em um aplicativo Web, é facilmente possível que o cabeçalho definido na primeira linha não seja o mesmo usado ao chamar o recurso.

Sem causar contenção usando bloqueios e mantendo um aplicativo Web sem estado, qual é a abordagem recomendada para criar e descartar HttpClients para um único terminal (Minha prática atual é criar um único cliente por terminal)?

Ciclo da vida

Embora o HttpClient implemente indiretamente a interface IDisposable, o uso recomendado do HttpClient é não descartá-lo após cada solicitação. O objeto HttpClient deve permanecer durante o tempo que seu aplicativo precisar fazer solicitações HTTP. A existência de um objeto em várias solicitações permite um local para a configuração de DefaultRequestHeaders e evita que você tenha que re-especificar coisas como CredentialCache e CookieContainer em cada solicitação, conforme necessário com o HttpWebRequest.

questionAnswers(1)

yourAnswerToTheQuestion