
ldap_delete_ext 함수는 LDAP 서버에 사용자를 삭제하는 함수입니다. 이 함수의 파라미터는 다음과 같습니다.
- dn: 삭제할 사용자의 distinguished name
- delete: 삭제 옵션 (LDAP_DELETEREPLACE, LDAP_DELETENOOP, LDAP_DELETESUBTREE 등)
- serverctrls: LDAP 서버에 전송하는 컨트롤
- msgid: 삭제 요청의 메시지 ID
- sctrls: LDAP 서버에 전송하는 서버 컨트롤
- res: 삭제 결과
delete 파라미터의 옵션은 다음과 같습니다.
- LDAP_DELETEREPLACE: 삭제할 사용자를 다른 사용자로 대체합니다.
- LDAP_DELETENOOP: 삭제할 사용자가 없을 때 에러를 반환합니다.
- LDAP_DELETESUBTREE: 삭제할 사용자의 하위 트리도 삭제합니다.
ldap_delete_ext 함수를 사용하여 사용자를 삭제할 때, 다음과 같은 에러가 발생할 수 있습니다.
- LDAP_NO_MEMORY: 메모리 할당 실패
- LDAP_OPERATIONS_ERROR: LDAP 서버와의 통신 실패
- LDAP_PARAM_ERROR: 파라미터 오류
- LDAP_NO_SUCH_OBJECT: 삭제할 사용자가 없을 때
ldap_delete_ext 함수를 사용하여 사용자를 삭제하는 코드 예시는 다음과 같습니다.
#hostingforum.kr
c
#include
int main() {
LDAP* ld;
BerValue* dn;
int rc;
// LDAP 서버 연결
ld = ldap_init("localhost", 389);
if (ld == NULL) {
printf("LDAP 서버 연결 실패n");
return 1;
}
// 삭제할 사용자의 distinguished name 설정
dn = ldap_dn2bv(ld, "cn=delete_user,dc=example,dc=com");
if (dn == NULL) {
printf("distinguished name 설정 실패n");
return 1;
}
// 삭제 옵션 설정
int delete = LDAP_DELETENOOP;
// 삭제 요청
rc = ldap_delete_ext(ld, dn, delete, NULL, NULL, NULL, NULL);
if (rc != LDAP_SUCCESS) {
printf("삭제 요청 실패n");
return 1;
}
// LDAP 서버 연결 해제
ldap_unbind(ld);
return 0;
}
이 코드는 LDAP 서버에 사용자를 삭제하는 예시입니다. 삭제할 사용자의 distinguished name을 설정하고, 삭제 옵션을 설정한 후, 삭제 요청을 보냅니다. 삭제 요청이 성공적으로 완료되면, LDAP 서버 연결을 해제합니다.
2025-06-05 16:36