Я пытаюсь использовать System.Net.WebClient в приложении WinForms для загрузки файла на сервер IIS6, у которого есть проверка подлинности Windows, как это только метод "Аутентификация".
WebClient myWebClient = new WebClient();
myWebClient.Credentials = new System.Net.NetworkCredential(@"boxname\peter", "mypassword");
byte[] responseArray = myWebClient.UploadFile("http://localhost/upload.aspx", fileName);
Я получаю: "Удаленный сервер возвратил ошибку: (401)" Неавторизованный ", на самом деле это 401.2
Оба клиента и IIS находятся на одной машине Windows Server 2003 Dev.
Когда я пытаюсь открыть страницу в Firefox и ввести те же правильные учетные данные, что и в коде, страница появляется. Однако при использовании IE8 я получаю ту же ошибку 401.2.
Пробовал Chrome и Opera, и они оба работают.
У меня включена опция "Включить встроенную проверку подлинности Windows" в настройках Internet Internet Explorer.
Журнал событий безопасности имеет аудит сбоя:
Logon Failure:
Reason: An error occurred during logon
User Name: peter
Domain: boxname
Logon Type: 3
Logon Process: ÈùÄ
Authentication Package: NTLM
Workstation Name: boxname
Status code: 0xC000006D
Substatus code: 0x0
Caller User Name: -
Caller Domain: -
Caller Logon ID: -
Caller Process ID: -
Transited Services: -
Source Network Address: 127.0.0.1
Source Port: 1476
Я использовал Process Monitor и Fiddler для исследования, но безрезультатно.
Почему это работает для сторонних браузеров, но не с IE или System.Net.WebClient?