Как использовать библиотеку WinHTTP для аутентификации Kerberos (Windows Integrated) - PullRequest
4 голосов
/ 16 декабря 2010

Существует сервер, работающий на Linux, который понимает Kerberos, который также обрабатывает SPNEGO и понимает только Kerberos, но не понимает NTLM

Firefox и IE успешно входят в систему и получают доступ к веб-странице с помощью токенов Kerberos, не запрашивая пароль.

Теперь я пытаюсь написать приложение, используя библиотеку WinHTTP. Я последовал примеру отсюда http://msdn.microsoft.com/en-Us/library/aa383144(v=vs.85).aspx

В вызове WinHttpSetCredentials я не хочу устанавливать пароль для имени пользователя, вместо этого я хочу сказать этому вызову использовать существующие учетные данные. Как мне это сделать?

Если я упоминаю пустое имя пользователя и пароль, он не работает, он возвращается к NTLM и завершается ошибкой.

Так может кто-нибудь сказать мне, как использовать WinHTTPSetCredentials?

Ответы [ 2 ]

1 голос
/ 16 марта 2015

На самом деле вам нужно установить HTTP_OPTION_AUTOLOGON_POLICY, чтобы разрешить автоматический вход в систему (см. WinHttpSetOption). При этом библиотека WinHTTP будет обрабатывать отказ 401, сопровождаемый WWW-Authenticate: согласование и последующая повторная попытка на основе Kerberos.

0 голосов
/ 09 мая 2012

Для параметра AuthScheme необходимо установить значение WINHTTP_AUTH_SCHEME_NEGOTIATE

...