Jak uzyskać HttpClient do przekazywania poświadczeń wraz z żądaniem?

Mam aplikację internetową (hostowaną w IIS), która rozmawia z usługą Windows. Usługa Windows korzysta z interfejsu API ASP.Net MVC Web (samodzielnie hostowanego), dzięki czemu może być komunikowana za pośrednictwem protokołu HTTP za pomocą JSON. Aplikacja internetowa jest skonfigurowana do personifikacji. Chodzi o to, że użytkownik, który wysyła żądanie do aplikacji internetowej, powinien być użytkownikiem, którego aplikacja internetowa używa do wykonania żądania do usługi. Struktura wygląda tak:

(Użytkownik zaznaczony na czerwono to użytkownik, do którego odnosi się poniższy przykład).

Aplikacja internetowa wysyła żądania do usługi Windows za pomocąHttpClient:

var httpClient = new HttpClient(new HttpClientHandler() 
                      {
                          UseDefaultCredentials = true
                      });
httpClient.GetStringAsync("http://localhost/some/endpoint/");

Spowoduje to wysłanie żądania do usługi Windows, ale nie przekaże poprawnie poświadczeń (usługa zgłasza użytkownika jakoIIS APPPOOL\ASP.NET 4.0).To nie jest to, co chcę zrobić.

Jeśli zmienię powyższy kod, aby użyć aWebClient zamiast tego poświadczenia użytkownika są przekazywane poprawnie:

WebClient c = new WebClient
                   {
                       UseDefaultCredentials = true
                   };
c.DownloadStringAsync(new Uri("http://localhost/some/endpoint/"));

Dzięki powyższemu kodowi usługa zgłasza użytkownika jako użytkownika, który wysłał żądanie do aplikacji internetowej.

Co robię źle zHttpClient implementacja, która powoduje, że nie przekazuje poprawnie poświadczeń (czy jest to błąd zHttpClient)?

Powód, dla którego chcę użyćHttpClient jest to, że ma on async API, który działa dobrze zTasks, podczas gdyWebClientAPI asyc należy obsługiwać za pomocą zdarzeń.