title: Is setting the Authorization header in HttpClient safe?
body: <p>I'm working in a MVC5 ASP.NET project, and learned that to send authenticated requests to a WEB API from the controller I could do the following to add a token to the header(using an example code):</p>
  
  <pre><code>public static class APICaller
  {
      // Use a single instance for HttpClient to reduce overhead
      private static readonly HttpClient client = new HttpClient();
  
      //Set the Authorization Header
      public static string SetHeader( string token )
      {
          client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
  
          return("Success");
      }
  }
  </code></pre>
  
  <p>Is setting the header this way on the HttpClient thread-safe? Will other users have a way to access this same token, given that there is only one instance of this HttpClient?</p>
  
  <p>EDIT:</p>
  
  <p>I'd like to ask one more question to get a better understanding of how it works. Would I need to add the header each time I'm making a request with the same HttpClient object?</p>