我有這個小問題。我想通過LDAP(Windows Active Directory)對用戶進行身份驗證,一切正常,但組合(用戶名,密碼錯誤,域錯誤)。ldap_bind_s返回帶有錯誤憑證的LDAP_SUCCESS
LDAP* ldap = ldap_init(L"myserver", 389);
ULONG ldap_version = 3;
ULONG ret = LDAP_SUCCESS;
ret = ldap_set_option(ldap, LDAP_OPT_PROTOCOL_VERSION, (void*)&ldap_version);
ret = ldap_connect(ldap, NULL);
SEC_WINNT_AUTH_IDENTITY ai;
ai.Domain = (unsigned short*)BAD_DOMAIN;
ai.DomainLength = wcslen(BAD_DOMAIN);
ai.User = (unsigned short*)OK_USER;
ai.UserLength = wcslen(OK_USER);
ai.Password = (unsigned short*)OK_PASS;
ai.PasswordLength = wcslen(OK_PASS);
ai.Flags = SEC_WINNT_AUTH_IDENTITY_UNICODE;
ret = ldap_bind_s(ldap, NULL, (PWCHAR) &ai, LDAP_AUTH_NTLM); // !!! HERE !!!
ret = ldap_unbind_s(ldap);
就行了坊間「!這裏 !!!'我期望0x31或任何其他錯誤返回。相反,我得到LDAP_SUCCESS :(
有什麼建議?THX,米蘭
嗨,我會嘗試'EX'版本的結構。 關於返回值,當然我正在檢查它們。這只是一個簡短的測試案例。 無論如何thx,rezna – rezna 2009-08-17 11:28:20