2010-07-06 2 views

ответ

3

Существует две основные схемы аутентификации HTTP:

  • BASIC: имя пользователя и пароль будут добавлены в ясном для запроса HTTP заголовков
  • DIGEST: сервер chalenges клиента nonce и клиент отвечает хешем (дайджест) от nonce и пароль, который может подтвердить сервер

Параметры authType - это схема проверки подлинности HTTP, для которой учетные данные добавляются в кэш. При выполнении запроса сервер сначала ответит 403 и укажет поддерживаемую схему аутентификации вместе с областью и бездействием (если необходимо). Затем запрос будет использовать кеш учетных данных для ответа на chalenge, если запрашиваемый тип проверки подлинности находится в кеше (основной или дайджест). Последующие вызовы после первого вызова могут предварительно отправить информацию аутентификации, если установлен PreAuthenticate.

+0

Что о NTLM? Есть ли ссылка на документ MSDN, в котором перечислены эти типы? – tamberg

+1

NTLM с HTTP не документируется. Существуют [обратные инженерные попытки] (http://www.innovation.ch/personal/ronald/ntlm.html) ymmv. –

1

authType, похоже, ссылается на то, как предоставленные вами учетные данные (имя пользователя и пароль) отправляются с помощью веб-запроса http. Базовый пример означает незашифрованное, а дайджест означает, что вы отправляете хэш вместе с запросом на его аутентификацию. Обратите внимание, что этот тип проверки подлинности определяется сервером, и вы не имеете выбора в отношении того, к чему следует следовать.
См Basic Authentication и Digest Authentication

0

Я смотрел на другой перегрузка CredentialCache.Add() Метод:

CredentialCache.Add(String host, Int32 port, String authenticationType, NetworkCredential credential) 

определение можно найти здесь: https://msdn.microsoft.com/en-us/library/59x2s2s6(v=vs.110).aspx
Здесь они называют струна "AuthenticationType" (вместо «authType») и состояний:

Поддерживаемые значения для auth Тип являются "NTLM", "Digest", "Kerberos", и "переговоры".

Я нахожу это сбивает с толку, потому что "AUTHTYPE" и "AuthenticationType" по всей видимости, используются как взаимозаменяемые.

Он работал для моего URL, когда я использовал "NTLM" и "переговоры" для "AUTHTYPE" в методе перегрузки вы ссылаетесь в вашем вопросе:

CredentialCache.Add(Uri uriPrefix, String authType, NetworkCredential cred)