2016-10-22 1 views
1

Я использую этот HTTPClient в приложении Xamarin:Как сделать NTLM аутентификации с Xamarin ModernHttpClient или System.Net.Http.httpClient

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

Мой сервер требует проверки подлинности NTLM. Я считаю, что я должен сделать что-то вроде этого:

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

Но неясно мне, как я должен заменить «...». Документация fo AuthenticationHeaderValue ничего не говорит.

Правильно ли это? Что мне нужно сделать?

ответ

1

для Android/IOS/UWP в .NET Standard 1.4 библиотеки с использованием System.Net.Http.httpClient, используемого в проекте Xamarin: (я не использовал 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); 

client.DefaultRequestHeaders.Authorization можно оставить в покое, так как приведенный выше код будет внутренне генерировать заголовок авторизации для каждого запроса.