
LDAP_MOD_DELETE_EXT는 LDAP 연동에서 특정 항목을 삭제할 때 사용하는 방법입니다. 이 방법은 LDAP_MODIFY_EXT와 유사하지만, 항목을 삭제하는 데 사용됩니다.
LDAP_MOD_DELETE_EXT의 사용법은 다음과 같습니다.
- 삭제할 항목의 DN(Distinguished Name)을 지정합니다.
- 삭제할 항목의 속성을 지정합니다. 속성은 삭제할 항목의 모든 속성을 포함해야 합니다.
- LDAP_MODIFY_EXT의 opCode를 DELETE로 설정합니다.
예를 들어, 다음과 같이 삭제할 항목의 DN과 속성을 지정하고, LDAP_MODIFY_EXT의 opCode를 DELETE로 설정하여 삭제할 수 있습니다.
#hostingforum.kr
c
LDAP_MODIFY_EXT modifyRequest;
modifyRequest.opCode = LDAP_MODIFY_EXT;
modifyRequest.msgID = 1;
modifyRequest.controls = NULL;
modifyRequest.controlsSize = 0;
modifyRequest.modifyRequest = LDAP_MOD_DELETE_EXT;
modifyRequest.modifyRequestSize = sizeof(LDAP_MOD_DELETE_EXT);
LDAP_MOD_DELETE_EXT modDelete;
modDelete.entry = (LDAPModEntry*)malloc(sizeof(LDAPModEntry));
modDelete.entry->dn = (char*)malloc(strlen("cn=John Doe,dc=example,dc=com") + 1);
strcpy(modDelete.entry->dn, "cn=John Doe,dc=example,dc=com");
modDelete.entry->attributes = (LDAPModAttributes*)malloc(sizeof(LDAPModAttributes));
modDelete.entry->attributes->count = 1;
modDelete.entry->attributes->values = (LDAPModAttribute)malloc(sizeof(LDAPModAttribute*) * modDelete.entry->attributes->count);
modDelete.entry->attributes->values[0] = (LDAPModAttribute*)malloc(sizeof(LDAPModAttribute));
modDelete.entry->attributes->values[0]->type = "objectClass";
modDelete.entry->attributes->values[0]->values = (char)malloc(sizeof(char*) * 1);
modDelete.entry->attributes->values[0]->values[0] = (char*)malloc(strlen("person") + 1);
strcpy(modDelete.entry->attributes->values[0]->values[0], "person");
modifyRequest.modifyRequestSize = sizeof(LDAP_MOD_DELETE_EXT);
modifyRequest.modifyRequest = &modDelete;
LDAP_MOD_DELETE_EXT를 사용할 때, 특정 항목이 삭제되지 않을 수 있는 경우는 다음과 같습니다.
- 삭제할 항목의 DN이 잘못된 경우
- 삭제할 항목의 속성이 잘못된 경우
- LDAP 연동이 잘못된 경우
LDAP_MOD_DELETE_EXT를 사용하는 방법을 예를 들어 설명해 드리겠습니다.
예를 들어, LDAP 연동을 사용하여 사용자 정보를 삭제하고자 할 때, LDAP_MOD_DELETE_EXT를 사용할 수 있습니다. 사용자 정보를 삭제하기 위해, 사용자 DN을 지정하고, 사용자 속성을 지정하여 삭제할 수 있습니다.
#hostingforum.kr
c
LDAP_MOD_DELETE_EXT modDelete;
modDelete.entry = (LDAPModEntry*)malloc(sizeof(LDAPModEntry));
modDelete.entry->dn = (char*)malloc(strlen("cn=John Doe,dc=example,dc=com") + 1);
strcpy(modDelete.entry->dn, "cn=John Doe,dc=example,dc=com");
modDelete.entry->attributes = (LDAPModAttributes*)malloc(sizeof(LDAPModAttributes));
modDelete.entry->attributes->count = 1;
modDelete.entry->attributes->values = (LDAPModAttribute)malloc(sizeof(LDAPModAttribute*) * modDelete.entry->attributes->count);
modDelete.entry->attributes->values[0] = (LDAPModAttribute*)malloc(sizeof(LDAPModAttribute));
modDelete.entry->attributes->values[0]->type = "objectClass";
modDelete.entry->attributes->values[0]->values = (char)malloc(sizeof(char*) * 1);
modDelete.entry->attributes->values[0]->values[0] = (char*)malloc(strlen("person") + 1);
strcpy(modDelete.entry->attributes->values[0]->values[0], "person");
LDAP_MODIFY_EXT modifyRequest;
modifyRequest.opCode = LDAP_MODIFY_EXT;
modifyRequest.msgID = 1;
modifyRequest.controls = NULL;
modifyRequest.controlsSize = 0;
modifyRequest.modifyRequest = LDAP_MOD_DELETE_EXT;
modifyRequest.modifyRequestSize = sizeof(LDAP_MOD_DELETE_EXT);
modifyRequest.modifyRequest = &modDelete;
이 예제에서, 사용자 DN을 지정하고, 사용자 속성을 지정하여 삭제할 수 있습니다. LDAP_MOD_DELETE_EXT를 사용하여 사용자 정보를 삭제할 수 있습니다.
2025-04-30 20:34