Проверяете ли вы возвращаемые значения из ldap_init (), ldap_set_option () и ldap_connect ()?
Я бы попробовал использовать структуру SEC_WINNT_AUTH_IDENTITY_EX
и указать версию и длину.
В противном случае ваш код выглядит мне правильно.
Это может также привести к анонимному доступу или доступу как зарегистрированный пользователь.
Windows может быть весьма «полезной» в сопоставлении строк домена и имени пользователя. Что вы передаете за домен? Это правдоподобная, но несуществующая доменная строка? Если он нарушает правила именования, он может быть проигнорирован, и пользователь будет соответствовать, как если бы вы не указали имя пользователя. В частности, известные имена пользователей, такие как «Администратор», в конечном итоге совпадают практически с любым локальным компьютером или доменом.
Вы пытались выполнить простой запрос со связанным соединением?
Существует странный случай, когда связывание будет успешно выполнено с использованием недавно истекшего пароля, но затем произойдет сбой какой-либо операции для последующего связывания на том же соединении произвольно. Я не думаю, что это то, что вы видите, однако. Если вы столкнетесь с этим странным случаем, я думаю, что решение где-то здесь похоронено: http://support.microsoft.com/default.aspx?scid=kb;EN-US;823659