Die Authentifizierung beim ASP.NET-Web-API-Dienst mit HttpClient ist nicht möglich

Ich habe einen ASP.NET-Web-API-Dienst, der auf einem Webserver mit aktivierter Windows-Authentifizierung ausgeführt wird.

Ich habe eine auf MVC4 erstellte Client-Site, die auf einer anderen Site auf demselben Webserver ausgeführt wird, auf dem der HttpClient zum Abrufen von Daten aus dem Dienst verwendet wird. Diese Client-Site wird mit aktiviertem Identitätswechsel ausgeführt und verwendet auch die Windows-Authentifizierung.

Der Webserver ist Windows Server 2008 R2 mit IIS 7.5.

Die Herausforderung besteht darin, den HttpClient dazu zu bringen, den aktuellen Windows-Benutzer als Teil seines Authentifizierungsprozesses weiterzuleiten. Ich habe den HttpClient folgendermaßen konfiguriert:

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

Ich verstehe, dass das Ausführen der Site mit aktiviertem Identitätswechsel und das anschließende Erstellen des Clients auf diese Weise dazu führen sollte, dass sich der Client beim Dienst mit der Identitätswechselidentität des derzeit angemeldeten Benutzers authentifiziert.

Das passiert nicht. Tatsächlich scheint der Client überhaupt nicht zu authentifizieren.

Der Dienst ist so konfiguriert, dass die Windows-Authentifizierung verwendet wird, und dies scheint einwandfrei zu funktionieren. Ich kann zu gehenhttp: // server / api / shippers Nach der Eingabe erhalte ich in meinem Webbrowser die angeforderten Daten und werde zur Windows-Authentifizierung aufgefordert.

In den IIS-Protokollen sehe ich, dass die API-Anforderungen ohne Authentifizierung empfangen werden und eine 401-Challenge-Antwort erhalten.

Die Dokumentation zu diesem Thema scheint spärlich zu sein.

Ich brauche einen Einblick, was falsch sein könnte, oder eine andere Möglichkeit, die Windows-Authentifizierung mit dieser Anwendung zu verwenden.

Vielen Dank, Craig

Antworten auf die Frage(4)

Ihre Antwort auf die Frage