如何使用Xamarin ModernHttpClient或System.Net.Http.httpClient进行NTLM身份验证

时间:2016-10-22 22:30:44

标签: c# xamarin.forms dotnet-httpclient

我在Xamarin应用程序中使用此httpClient:

var httpClient = new HttpClient(new NativeMessageHandler());

我的服务器需要NTLM身份验证。我相信我必须做这样的事情:

httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("NTLM",...);

但我不清楚我应该如何取代“......”。 AuthenticationHeaderValue的文档没有说什么。

这是正确的方法吗?我该怎么办?

1 个答案:

答案 0 :(得分:1)

对于使用Xamarin项目中使用的.NET Standard 1.4的{​​{1}}库中的Android / iOS / UWP :(我尚未使用System.Net.Http.httpClient

ModernHttpClient

// Note: The NTLM domain is important here, otherwise basic auth will be used: var credentials = new NetworkCredential("username", "password", "domain"); var handler = new HttpClientHandler { Credentials = credentials, UseDefaultCredentials = false } var client = new HttpClient(handler); 可以保持不变,因为上面的代码将在内部为每个请求生成授权标头。