Я пытаюсь использовать 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.
Когда я пытаюсь открыть страницу в Firefox и ввести те же правильные учетные данные, что и в коде, появляется страница.
Однако при использовании IE8 я получаю ту же ошибку 401.2.
Пробовал Chrome и Opera и они оба работают.
У меня включена опция «Включить встроенную аутентификацию Windows» в параметрах 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?