Nie można uwierzytelnić się w usłudze ASP.NET Web Api za pomocą HttpClient

Mam usługę ASP.NET Web API, która działa na serwerze internetowym z włączonym uwierzytelnianiem systemu Windows.

Mam witrynę klienta zbudowaną na MVC4, która działa w innej witrynie na tym samym serwerze sieciowym, który używa HttpClient do pobierania danych z usługi. Ta witryna klienta działa z włączoną personifikacją tożsamości, a także korzysta z uwierzytelniania systemu Windows.

Serwer WWW to Windows Server 2008 R2 z IIS 7.5.

Wyzwanie, jakie mam, polega na tym, że HttpClient przekazuje bieżącemu użytkownikowi systemu Windows w ramach procesu uwierzytelniania. Skonfigurowałem HttpClient w ten sposób:

<code>var clientHandler = new HttpClientHandler();
clientHandler.UseDefaultCredentials = true;
clientHandler.PreAuthenticate = true;
clientHandler.ClientCertificateOptions = ClientCertificateOption.Automatic;
var httpClient = new HttpClient(clientHandler);
</code>

Rozumiem, że uruchomienie witryny z włączoną personifikacją tożsamości, a następnie zbudowanie klienta w ten sposób powinno skutkować uwierzytelnieniem klienta do usługi przy użyciu personifikowanej tożsamości aktualnie zalogowanego użytkownika.

To się nie dzieje. W rzeczywistości klient w ogóle się nie uwierzytelnia.

Usługa jest skonfigurowana do korzystania z uwierzytelniania systemu Windows i wydaje się, że działa idealnie. mogę iść dohttp: // serwer / api / spedytorzy w mojej przeglądarce internetowej i zostanie wyświetlony monit o uwierzytelnienie systemu Windows, po wprowadzeniu otrzymam żądane dane.

W dziennikach IIS widzę, że żądania API są odbierane bez uwierzytelniania i otrzymywania odpowiedzi na wyzwanie 401.

Dokumentacja na tym wydaje się być rzadka.

Potrzebuję wglądu w coś, co może być błędne lub w inny sposób korzystać z uwierzytelniania systemu Windows za pomocą tej aplikacji.

Dziękuję, Craig

questionAnswers(4)

yourAnswerToTheQuestion