ldap_init 함수(winldap.h)
ldap_init 함수는 LDAP 서버를 사용하여 세션을 초기화합니다.
구문
WINLDAPAPI LDAP *LDAPAPI ldap_init(
[in] PSTR HostName,
[in] ULONG PortNumber
);
매개 변수
[in] HostName
도메인 이름을 포함하는 null로 끝나는 문자열에 대한 포인터 또는 연결할 LDAP 서버를 실행하는 호스트의 IP 주소를 나타내는 호스트 이름 또는 점선 문자열의 공백으로 구분된 목록입니다. 목록의 각 호스트 이름에는 콜론(:)을 사용하여 호스트 자체와 구분된 선택적 포트 번호가 포함될 수 있습니다. Active Directory 서버에 연결할 때 LDAP_OPT_AREC_EXCLUSIVE 옵션을 사용하는 방법에 대한 자세한 내용은 설명 섹션을 참조하세요.
[in] PortNumber
연결할 TCP 포트 번호를 포함합니다. 기본 포트 389를 가져오려면 LDAP_PORT 로 설정합니다. 호스트 이름에 포트 번호가 포함된 경우 이 매개 변수는 무시됩니다.
반환 값
함수가 성공하면 LDAP 데이터 구조에 대한 포인터 형태로 세션 핸들을 반환합니다. 세션 핸들은 더 이상 필요하지 않은 경우 ldap_unbind 호출하여 해제해야 합니다.
이 함수가 실패하면 NULL을 반환합니다. LdapGetLastError를 사용하여 오류 코드를 검색합니다.
설명
ldap_init 호출하여 LDAP 서버에 대한 연결 블록을 만듭니다. ldap_open 달리 ldap_init 호출해도 연결이 열리지 않습니다. ldap_connect 명시적으로 호출하여 라이브러리가 서버에 연결하도록 할 수 있습니다. 이 기능은 ldap_connect 호출하기 전에 ldap_init 연결 블록을 사용하여 ldap_set_option호출하는 로컬 시간 제한을 지정하려는 경우에 유용합니다. 그러나 일반적으로 이 호출은 열려 있는 연결이 필요한 첫 번째 작업 함수가 호출되지 않은 경우 내부적으로 ldap_connect 때문에 필요하지 않습니다.
함수는 세션의 상태 데이터를 유지하기 위해 LDAP 데이터 구조를 할당하고 이 구조체에 대한 핸들을 반환합니다. 세션 중에 이 핸들을 LDAP 함수 호출에 전달합니다.
HostName 매개 변수는 NULL일 수 있으며, 이 경우 런타임은 "기본" LDAP 서버를 찾으려고 시도합니다. ldap_connect 호출되면 호스트가 나열된 순서대로 시도되어 첫 번째 성공적인 연결로 중지됩니다. Active Directory 서버의 경우 DsGetDcName 함수를 사용하여 서버 이름을 가져온 다음 NULL을 사용하는 대신 HostName 매개 변수로 전달할 수 있습니다.
ldap_set_option 함수를 사용하여 LDAP_OPT_GETDSNAME_FLAGS 옵션을 설정하는 경우에도 DsGetDCName에 전달될 플래그를 지정하여 연결할 DC를 검색합니다. 또한 LDAP 클라이언트는 LDAP_OPT_GETDSNAME_FLAGS 지정하는 플래그 외에도 DS_ONLY_LDAP_NEEDED 플래그를 DsGetDCName에 전달합니다.
HostName 매개 변수에 대해 NULL이 전달되고 호출 컴퓨터가 Active Directory 도메인의 멤버인 경우 런타임은 연결을 시도할 때 현재 컴퓨터가 멤버인 도메인에서 DC를 검색합니다.
HostName 매개 변수에 대해 NULL이 전달되고 호출 컴퓨터가 Active Directory 도메인의 DC인 경우 런타임은 NULL을 127.0.0.1로 전환하고 연결을 시도할 때 루프백을 사용하여 로컬 컴퓨터에 연결합니다.
HostName 매개 변수에 대해 Active Directory 도메인 이름이 전달되면 ldap_init 해당 도메인에서 "기본" LDAP 서버를 찾습니다.
HostName이 NULL 또는 도메인 이름으로 설정된 경우 자동 다시 연결이 적용됩니다. 연결 수명 동안 어떤 이유로든 연결된 DC의 작동이 중지되면 LDAP는 지정된 도메인의 다른 DC에 자동으로 다시 연결됩니다. 이 동작은 기본적으로 켜진 LDAP_OPT_AUTO_RECONNECT 세션 옵션을 사용하거나 해제할 수 있습니다.
HostName 매개 변수에 대해 Active Directory DNS 서버 이름이 전달되면 실제 연결을 만드는 LDAP 함수를 호출하기 전에 LDAP_OPT_AREC_EXCLUSIVE 플래그를 설정하려면 ldap_set_option 호출해야 합니다. 이렇게 하면 A 레코드 조회가 강제로 수행되고 호스트 이름을 확인할 때 SRV 레코드 조회를 무시합니다. 전화 접속 연결이 있는 지점의 경우 A-Record 조회를 사용하면 이름을 확인할 때 전화 접속이 원격 DNS 서버에서 SRV 레코드를 쿼리하도록 강제하는 것을 방지할 수 있습니다.
전역 카탈로그 포트 번호가 인수 중 하나로 ldap_init 전달되는 경우 해당 포트 번호에 대해 전달된 HostName 은 엔터프라이즈에서 GC를 올바르게 찾으려면 DsGetDcName() 에 대한 기본 호출의 포리스트 이름이어야 합니다.
다중 스레딩: ldap_init 호출은 스레드로부터 안전합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
지원되는 최소 서버 | Windows Server 2008 |
대상 플랫폼 | Windows |
헤더 | winldap.h |
라이브러리 | Wldap32.lib |
DLL | Wldap32.dll |