Выполнение HTTP-запроса и аутентификация с помощью AD с использованием CredentialCache - PullRequest
0 голосов
/ 12 марта 2019

Я делаю http-запрос и мне нужно пройти аутентификацию с использованием учетных данных AD.Я могу успешно выполнить мои действия:

webRequest.Credentials = new NetworkCredential("myusername", "mypasssword");

Однако я пытался это сделать с помощью

 webRequest.Credentials = new NetworkCredential(CredentialCache.DefaultNetworkCredentials.UserName, CredentialCache.DefaultNetworkCredentials.Password);

Однако это возвращает 401. Является ли CredentialCache неправильным способом сделатьэтот?И это способ получить текущее имя пользователя и пароль, чтобы пройти этот путь, или мне нужно было бы попросить пользователя для этого ввода?

1 Ответ

0 голосов
/ 12 марта 2019

Если вы хотите пройти аутентификацию с текущим пользователем, просто установите свойство WebRequest.UseDefaultCredentials, поскольку нет задокументированного способа получить пароль текущего пользователя.

Как бы то ни было, вам нужна либо аутентификация NTLM, либо Kerberos, которая в конце концов обратится к локальному хранилищу пользователей Windows или к доменным службам для проверки подлинности. Они используют два и, соответственно, трехстороннее рукопожатие со сложными сообщениями и хэшами, но никакие фактические учетные данные не передаются, как в случае аутентификации basic. Тем не менее, большинство серверов возвращаются к базовым. Вот почему ваш первый метод работает.

...