Я использую Mono 2.6.7 - если я не указываю домен, запрашиваемый хост берется для аутентификации NTLM - что приводит к неудачному входу в систему.
1 - Работает: Войти с именем пользователя 'domainXYZ / User123' -> Wireshark Capture NTLM Packages:
Domain name: domainXYZ
User name: User123
2 - Работа: войдите под именем пользователя 'User123' по URL http://1.2.3.4/a.txt -> .Net / Windows :
Domain name: NULL
User name: User123
3 - не работает: войдите под именем пользователя 'User123' по URL http://1.2.3.4/a.txt -> Mono / Debian :
Domain name: 1.2.3.4
User name: User123
Этот запрос аутентификации не работает, поскольку на целевой машине нет домена с именем 1.2.3.4.
Мой код для аутентификации без информации о домене:
NetworkCredential credential = new NetworkCredential(request.Username, request.Password);
// credential = new NetworkCredential(request.Username, request.Password, null); also not working
CredentialCache credentialCache = new CredentialCache { { new Uri(request.Url), "NTLM", credential } };
webClient.Credentials = credentialCache;
Есть идеи?