Maison >développement back-end >C++ >Pourquoi HttpClient ne transmet-il pas les informations d'identification avec UseDefaultCredentials=true, alors que WebClient le fait ?
Comprendre la gestion des informations d'identification dans HttpClient
Lorsqu'une application, en particulier celle utilisant l'usurpation d'identité, doit interagir avec un service Windows via une API Web ASP.NET MVC, il est crucial de transmettre les informations d'identification de l'utilisateur. Cependant, la définition de UseDefaultCredentials = true
dans une instance HttpClient
standard ne parvient souvent pas à y parvenir.
La différence HttpClient vs WebClient
Fait intéressant, WebClient
, lorsqu'il est configuré de la même manière, transmet correctement les informations d'identification. Cette différence met en évidence une distinction comportementale clé entre les deux classes.
La solution : configurer HttpClientHandler
Pour propager correctement les informations d'identification à l'aide de HttpClient
, vous devez configurer explicitement le HttpClientHandler
sous-jacent :
<code class="language-csharp">var myClient = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true });</code>
Cette approche garantit que HttpClient
envoie correctement les informations d'identification de l'utilisateur, permettant au service d'authentifier correctement la demande. Cela résout le problème de propagation des informations d'identification rencontré lors de l'utilisation de UseDefaultCredentials
directement sur l'objet HttpClient
.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!