Авторизует любого пользователя с пустым именем пользователя при привязке LDAP с учетными данными - PullRequest
0 голосов
/ 18 мая 2018

Я работаю над авторизацией пользователей, использующих соединение LDAP.Ниже приведен небольшой фрагмент кода

string principalUserName = "";
NetworkCredential NC = new NetworkCredential(principalUserName, password); 
LdapConnection.Bind(NC);`

Приведенный выше код должен был указать причину ошибки для пустой строки, но это не так.Таким образом, до тех пор, пока principalUserName не заполнено, оно будет авторизовать кого угодно, независимо от пароля (следовательно, LdapConnection.Bind(NC) не выдаст никакой ошибки).

Соответствующее значение PrincipalUsername имеет формат, подобный

CN=user1,OU=PublicOrganization

Мой вопрос: почему он авторизует пустое имя пользователя?

1 Ответ

0 голосов
/ 18 мая 2018

Он обрабатывает пустые учетные данные как отсутствие учетных данных.Если вы не предоставляете учетные данные, он использует учетные данные запущенного процесса.

Таким образом, он использует ваши учетные данные.

Вы можете проверить это, запустив программу под учетной записью локального компьютера, котораяне будет доверять домену.В этом случае тест не пройден.

...