У меня есть небольшая утилита, которая является клиентом SOAP WebService. SOAP-прокси генерируется из WSDL. Работало нормально.
Теперь клиент хочет использовать прокси-сервер SQUID, но он отказывается аутентифицировать мой SOAP-клиент.
Я уже пробовал:
MyWebservice ws = new MyWebservice();
// set URL etc.
// login for the actual service, this part works
HeaderLogin hl = new HeaderLogin();
hl.username = svcLogin;
hl.password = svcPassword;
ws.HeaderLoginValue = hl;
// setting up the Proxy of the Proxy
//ws.Proxy = System.Net.WebRequest.GetSystemWebProxy();
ws.Proxy = System.Net.WebRequest.DefaultWebProxy;
//ws.Proxy.Credentials = CredentialCache.DefaultCredentials;
ws.Proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword, proxyDomain);
Но я получаю ошибку HTTP 407. Требуется проверка подлинности прокси.
SQUID (squid / 2.7.STABLE4) настроен на использование NTLM и AD для аутентификации. Кажется, это работает нормально: есть другие клиенты WebService, которые проходят через Прокси, все в порядке.
У меня нет прямого доступа к сайту, но есть только несколько лог-файлов для просмотра. Наиболее примечательным является то, что я вижу в файлах PCAP (Wireshark). Когда я создаю NetworkCredential с userName = "Henk", domain = "TEST", он отображается в PCAP как
... HTTP CONNECT someurl: 443 HTTP / 1.1, NTLMSSP_AUTH, пользователь: T \ H
А когда я смотрю на PCAP для работающего сервиса
... HTTP CONNECT someurl: 443 HTTP / 1.0, NTLMSSP_AUTH, пользователь: TEST \ Henk
А в SQUID acces.log все попытки отображаются как:
... 0 192.168.15.95 TCP_DENIED / 407 1759 ПОДКЛЮЧИТЬ someurl: 443 - НЕТ / - text / html
... 32 192.168.15.95 TCP_DENIED / 407 2055 CONNECT someurl: 443 - НЕТ / - text / html
... 31 192.168.15.95 TCP_DENIED / 407 1759 СОЕДИНИТЬ someurl: 443 - НЕТ / - text / html
Конкретные вопросы:
- Известны ли какие-либо проблемы с .NET2 SOAP и Squid?
- значимо ли отображение TEST \ Henk как T \ H?
- что-нибудь еще, что я должен искать?