title: .net core 5 AddHeaderPropogation not forwarding RequestHeaders
body: <p>In C# Web Api I am attempting to forward 100% of all the headers and params arriving in an HTTP request. There are a wide range of preexisting Requests formats in the solution. Perhaps 60 different API types, each with different structures. I don't know the header contents of each Request type. However, hopefully that is immaterial to the problem.
  Firstly, I validate the Authorization Header of the inbound request. If is it valid, I want to pass ALL Headers, plus the query string, to the final endpoint &quot;as-is&quot;. The final endpoint is in a PHP/Laravel server, with the plan to selectively move each endpoint to a C# server.
  I mention this in case you would ask, &quot;Why do you want to do that?&quot;</p>
  <p>The &quot;forward propagations&quot; issue for the unknown Headers appears to have a solution in Microsoft's</p>
  <pre><code> services.AddHttpClient(&quot;ApiUserCheckSkills&quot;).AddHeaderPropagation(); on Factory generated Clients
   app.UseHeaderPropagation(); 
   // Both activated in Startup.cs
  </code></pre>
  <p>From what I have read .AddHeaderPropagation(), WITHOUT arguments, will default to propagating every Header item, unmodified and anonymously, into the next request. Perfect! But it isn't working for me.</p>
  <p>Inside the Controller that will accept and forward the initial Request:</p>
  <pre><code>```
      public UserAuthGateway(IHttpClientFactory factory)
      {
          _factory = factory;
      }
      
      [Route(&quot;api/user/check/skills&quot;)]
      [HttpGet]
      public async Task&lt;IActionResult&gt; ApiUserCheckSkills([FromQuery] string queryString)
      {
  
          //
          //  This call require an Authenticated User identified by a Bearer Token as well as an expires_in integer format seconds 
          //             
          string validationResult = Methods.JWS.JWS_ValidateAsymmetricAsGate(Request.Headers, Keys.publicXmlKey);
          if (!(validationResult == &quot;BearerTokenValid&quot;))
          {
              return StatusCode(401, validationResult);  // Some Problem with Authorization
          }            
          // Assuming the auth token was valid, here is the forwarding code
           var request =&quot;https://xxx.xxxxx.systems/api/user/check/skills&quot; + Request.QueryString;
          var client = _factory.CreateClient(&quot;ApiUserCheckSkills&quot;);
          var response = await client.GetAsync(request, 0 );
          
          if (response.IsSuccessStatusCode)
          {
              var ret = await response.Content.ReadAsStringAsync();               
              return Ok();
          }
          else
          {
              return StatusCode(500, &quot;Something Went Wrong! Error Occured&quot;);
          }
         
  
  
      } 
  </code></pre>
  <pre><code>var client = _factory.CreateClient(&quot;ApiUserCheckSkills&quot;); 
  </code></pre>
  <p>Has no Headers. Therefore, the call to the final endpoint fails. The call is reaching the final end point. But it fails because validation of the Bearer token, intended to be propagated in the Authorization header, is now missing.  It has not been propagated. There are a number of examples on Google of HeaderPropagation.  The capability of using the AddHeaderPropagation() with arguments is often demonstrated with specific headers but no examples of Propagation of all anonymous headers.</p>