Résoudre les problèmes d'informations d'identification dans HttpClient pour l'usurpation d'identité de l'API Web
L'usurpation d'identité lors de la communication avec les API Web entraîne souvent des difficultés pour transmettre correctement les informations d'identification. Cet article aborde les incohérences entre les approches HttpClient
et WebClient
.
Votre application utilise HttpClient
avec UseDefaultCredentials
défini sur true
. Cependant, cela ne suffit pas à lui seul à assurer une bonne transmission des informations d’identification. Une solution plus robuste est nécessaire.
La clé réside dans la propriété HttpClientHandler
de Credentials
. En définissant cette propriété, HttpClient
peut s'authentifier à l'aide des informations d'identification spécifiées.
Voici le code amélioré :
<code class="language-csharp">var httpClientHandler = new HttpClientHandler { UseDefaultCredentials = true }; httpClientHandler.Credentials = CredentialCache.DefaultCredentials; var httpClient = new HttpClient(httpClientHandler); httpClient.GetStringAsync("http://localhost/some/endpoint/").Wait();</code>
CredentialCache.DefaultCredentials
récupère automatiquement les informations d'identification par défaut du processus en cours. Ceux-ci correspondent généralement à l'identité du demandeur de l'application Web, obtenant ainsi l'usurpation d'identité souhaitée.
Remarque importante : cette méthode ne gère pas automatiquement l'actualisation ou l'expiration des informations d'identification. Pour les informations d’identification qui expirent fréquemment, une gestion personnalisée des informations d’identification est nécessaire.
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!