Grundlegendes zum Umgang mit Anmeldeinformationen in HttpClient
Wenn eine Anwendung, insbesondere eine Anwendung, die Identitätswechsel verwendet, über eine ASP.NET MVC-Web-API mit einem Windows-Dienst interagieren muss, ist es wichtig, die Anmeldeinformationen des Benutzers weiterzuleiten. Dies gelingt jedoch häufig nicht, wenn UseDefaultCredentials = true
innerhalb einer Standardinstanz HttpClient
festgelegt wird.
Der Unterschied zwischen HttpClient und WebClient
Interessanterweise überträgt WebClient
bei ähnlicher Konfiguration die Anmeldeinformationen korrekt. Dieser Unterschied verdeutlicht einen wesentlichen Verhaltensunterschied zwischen den beiden Klassen.
Die Lösung: HttpClientHandler konfigurieren
Um Anmeldeinformationen mit HttpClient
korrekt weiterzugeben, müssen Sie das zugrunde liegende HttpClientHandler
explizit konfigurieren:
<code class="language-csharp">var myClient = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true });</code>
Dieser Ansatz stellt sicher, dass HttpClient
die Anmeldeinformationen des Benutzers ordnungsgemäß gesendet werden, sodass der Dienst die Anfrage korrekt authentifizieren kann. Dies behebt das Problem bei der Weitergabe von Anmeldeinformationen, das bei der Verwendung von UseDefaultCredentials
direkt auf dem HttpClient
-Objekt auftritt.
Das obige ist der detaillierte Inhalt vonWarum übergibt HttpClient keine Anmeldeinformationen mit UseDefaultCredentials=true, während WebClient dies tut?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!