了解 HttpClient 中的憑證處理
當應用程式(尤其是使用模擬的應用程式)需要透過 ASP.NET MVC Web API 與 Windows 服務互動時,轉發使用者的憑證至關重要。 但是,在標準 UseDefaultCredentials = true
實例中設定 HttpClient
通常無法實現此目的。
HttpClient 與 WebClient 的差異
有趣的是,WebClient
,當配置類似時,可以正確傳輸憑證。這種差異凸顯了兩個類別之間的關鍵行為差異。
解:設定 HttpClientHandler
要使用 HttpClient
正確傳播憑證,您必須明確配置底層 HttpClientHandler
:
<code class="language-csharp">var myClient = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true });</code>
此方法可確保 HttpClient
正確傳送使用者的憑證,從而允許服務正確驗證要求。 這解決了直接在 UseDefaultCredentials
物件上使用 HttpClient
時遇到的憑證傳播問題。
以上是為什麼 HttpClient 不透過 UseDefaultCredentials=true 傳遞憑證,而 WebClient 卻可以?的詳細內容。更多資訊請關注PHP中文網其他相關文章!