개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.10 21:19

LDAP 첫 번째 속성 이름을 가져오는 방법에 대해 질문드립니다.

목록
  • DDD전문가 14일 전 2025.03.10 21:19
  • 10
    1
저는 LDAP를 사용하여 사용자 정보를 검색하고 있는데, `ldap_first_attribute` 함수를 사용하여 첫 번째 속성 이름을 가져오려고 합니다. 그러나 이 함수가 속성을 가져올 때 어떤 기준을 사용하는지 이해가 가지 않습니다. 속성이 있는지 여부에 따라 다른 속성을 가져올 수 있나요? 아니면 항상 첫 번째 속성을 가져올 수 있나요?

이 함수를 사용하여 속성을 가져올 때 어떤 문제가 발생할 수 있는지 알려주시고, 사용법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  14일 전



    `ldap_first_attribute` 함수는 LDAP 검색 결과의 첫 번째 속성을 반환합니다. 이 함수는 속성이 있는지 여부에 관계없이 항상 첫 번째 속성을 반환합니다. 속성이 없을 경우 NULL을 반환합니다.

    이 함수를 사용할 때 주의할 점은, LDAP 검색 결과의 속성이 여러 개인 경우 첫 번째 속성이 항상 첫 번째 속성이 아닐 수 있다는 것입니다. 예를 들어, LDAP 검색 결과의 속성이 "이름", "이메일", "전화번호" 순서로 존재하는 경우, `ldap_first_attribute` 함수는 "이름" 속성을 반환하지만, 첫 번째 속성이 실제로 "이메일" 속일 수 있습니다.

    이러한 문제를 해결하기 위해, LDAP 검색 결과의 속성을 모두 가져와야 합니다. `ldap_get_attributes` 함수를 사용하여 LDAP 검색 결과의 속성을 모두 가져올 수 있습니다.

    예를 들어, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    c
    
    LDAP* ld;
    
    BerValue* attr;
    
    int count;
    
    
    
    // LDAP 검색 결과를 가져옵니다.
    
    ld = ldap_search_ext_s(ld, "dc=example,dc=com", LDAP_SCOPE_SUBTREE, "(objectClass=*)", NULL, 0, NULL, NULL, NULL, 0, NULL, NULL);
    
    
    
    // LDAP 검색 결과의 속성을 모두 가져옵니다.
    
    attr = ldap_get_attributes(ld, ldap_first_entry(ld));
    
    
    
    // 속성을 반복하여 가져옵니다.
    
    while (attr != NULL) {
    
        // 속성 이름을 가져옵니다.
    
        char* attr_name = ldap_attr_name(attr);
    
    
    
        // 속성 값을 가져옵니다.
    
        BerValue* value = ldap_first_value(attr);
    
    
    
        // 속성 값을 반복하여 가져옵니다.
    
        while (value != NULL) {
    
            // 속성 값을 출력합니다.
    
            printf("%s: %sn", attr_name, ldap_value_string(value));
    
    
    
            // 다음 속성 값을 가져옵니다.
    
            value = ldap_next_value(attr);
    
        }
    
    
    
        // 다음 속성을 가져옵니다.
    
        attr = ldap_next_attribute(ld, ldap_first_entry(ld), attr);
    
    }
    
    
    
    // LDAP 검색 결과를 해제합니다.
    
    ldap_unbind_ext_s(ld, NULL, NULL);
    
    


    이 코드는 LDAP 검색 결과의 속성을 모두 가져와, 속성 이름과 속성 값을 출력합니다.

    2025-03-10 21:20

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 6,173건 / 220 페이지

검색

게시물 검색