HttpWebRequest с базовой аутентификацией завершается неудачно с 401 erorr для DefaultNetworkCredentials

Я тестирую приложение с локальным веб-сервером (IIS, Windows 8), сайт требует обычной проверки подлинности, и, пока я явно передаю свои учетные данные, все работает нормально:

request.Credentials = new NetworkCredential("User", "Password", "Domain");
request.PreAuthenticate = true;

Но я хотел бы использовать интегрированную безопасность, поэтому я попытался изменить первую строку следующим образом:

request.Credentials = CredentialCache.DefaultNetworkCredentials;

(Я тоже пробовал DefaultCredentials)

Я проверил сетевой трафик с помощью Fiddler и вижу, что во втором случае Http-запрос отправляется без заголовка авторизации, поэтому неудивительно, что он терпит неудачу. Но почему?

ОБНОВИТЬ. Я полагаю, что неправильно понял концепцию учетных данных по умолчанию. DefaultNetworkCredentials нельзя использовать для генерации основного заголовка аутентификации, это должна быть пара пользователь / пароль. Так что это поведение разработано.

1 ответ

Благодаря людям, которые прокомментировали эту тему, я понял, что неправильно понял концепцию учетных данных по умолчанию. Их нельзя использовать в том случае, если включена только обычная проверка подлинности, так что это правильное поведение.

Другие вопросы по тегам