CredReadDomainCredentialsA 함수(wincred.h)

CredReadDomainCredentials 함수는 사용자의 자격 증명 집합에서 도메인 자격 증명을 읽습니다. 사용되는 자격 증명 집합은 현재 토큰의 로그온 세션과 연결된 자격 증명 집합입니다. 토큰에 사용자의 SID를 사용하지 않도록 설정해서는 안 됩니다.

구문

BOOL CredReadDomainCredentialsA(
  [in]  PCREDENTIAL_TARGET_INFORMATIONA TargetInfo,
  [in]  DWORD                           Flags,
  [out] DWORD                           *Count,
  [out] PCREDENTIALA                    **Credential
);

매개 변수

[in] TargetInfo

대상 서버를 식별하는 대상 정보입니다. 명명 멤버 중 하나 이상이 NULL이 아니어야 합니다. NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainName 또는 DnsTreeName입니다.

[in] Flags

함수의 작업을 제어하는 플래그입니다.

다음 플래그가 정의됩니다.

CRED_CACHE_TARGET_INFORMATION

CredGetTargetInfo를 사용하여 후속 읽기를 위해 TargetInfo를 캐시합니다.

[out] Count

자격 증명 배열에서 반환된 자격 증명 의 수입니다.

[out] Credential

자격 증명에 대한 포인터 배열에 대한 포인터입니다. TargetInfo와 일치하는 가장 구체적인 기존 자격 증명이 반환됩니다. 다양한 형식의 자격 증명(예: CRED_TYPE_DOMAIN_PASSWORD 및 CRED_TYPE_DOMAIN_CERTIFICATE 자격 증명)이 있는 경우 각 형식 중 하나가 반환됩니다. 명명된 대상에 연결하려는 경우 이 가장 구체적인 자격 증명이 사용됩니다.

TargetInfo에서 지정한 자격 증명 형식만 CredTypes 배열이 반환됩니다. 반환된 자격 증명 배열은 TargetInfo와 동일한 순서로 정렬됩니다. CredTypes 배열입니다. 즉, 인증 패키지는 TargetInfo의 앞부분에서 지정하여 기본 자격 증명 유형을 지정합니다. CredTypes 배열입니다. TargetInfo인 경우 CredTypeCount가 0이면 자격 증명 배열이 다음과 같이 정렬된 순서로 반환됩니다.

  • CRED_TYPE_DOMAIN_CERTIFICATE
  • CRED_TYPE_DOMAIN_PASSWORD

반환된 버퍼는 할당된 단일 블록입니다. 버퍼 내에 포함된 모든 포인터는 이 단일 할당된 블록 내의 위치에 대한 포인터입니다. 반환된 단일 버퍼는 CredFree를 호출하여 해제해야 합니다.

반환 값

함수는 성공 시 TRUE 를 반환하고 실패 시 FALSE 를 반환합니다. GetLastError 함수를 호출하여 보다 구체적인 상태 코드를 가져올 수 있습니다. 다음 상태 코드를 반환할 수 있습니다.

  • ERROR_INVALID_PARAMETER

    명명 매개 변수가 지정되지 않았습니다.

  • ERROR_NOT_FOUND

    지정된 명명 매개 변수와 일치하는 자격 증명이 없습니다.

  • ERROR_NO_SUCH_LOGON_SESSION

    로그온 세션이 없거나 이 로그온 세션과 연결된 자격 증명 집합이 없습니다. 네트워크 로그온 세션에는 연결된 자격 증명 집합이 없습니다.

  • ERROR_INVALID_FLAGS

    잘못된 플래그가 Flags 매개 변수에 대해 지정되었습니다.

설명

이 함수는 명명 매개 변수와 일치하는 가장 구체적인 자격 증명을 반환합니다. instance 대상 서버 이름과 일치하는 자격 증명과 대상 도메인 이름과 일치하는 자격 증명이 있는 경우 서버별 자격 증명만 반환됩니다. 사용할 자격 증명입니다.

다음 목록에서는 둘 이상의 자격 증명이 일치하는 경우 반환되는 자격 증명의 순서(가장 구체적인 순서에서 최소로)를 지정합니다.

  • 자격 증명 대상 이름은 DfsRoot>\<DfsShare> 형식 < 이며 TargetName과 정확히 일치합니다.
  • DnsServerName에서 정확히 일치하는 항목입니다.
  • NetBIOSServerName에서 정확히 일치하는 항목입니다.
  • TargetName에서 정확히 일치하는 항목입니다.
  • DnsServerName을 와일드카드 서버 자격 증명과 일치합니다. 둘 이상의 와일드카드 서버 자격 증명이 일치하는 경우 TargetName이 더 긴 자격 증명이 사용됩니다. 즉, *.example.microsoft.com 대한 자격 증명은 *.microsoft.com 대한 자격 증명 대신 사용됩니다.
  • DnsDomainName 형식의 와일드카드 도메인 자격 증명과 DnsDomainName>\*의 < 정확한 일치입니다.
  • NetBIOSDomainName 형식의 와일드카드 도메인 자격 증명 < 과 NetBIOSDomainName>의 정확한 일치 항목\*
  • 이름이 CRED_SESSION_WILDCARD_NAME 자격 증명입니다.
  • "*"라는 자격 증명입니다.
CredReadDomainCredentials 는 도메인(CRED_TYPE_DOMAIN_PASSWORD 또는 CRED_TYPE_DOMAIN_CERTIFICATE) 자격 증명의 특이성을 처리한다는 점에서 CredRead 와 다릅니다. 도메인 자격 증명에는 둘 이상의 대상 멤버가 포함됩니다.

자격 증명 매개 변수로 지정된 CREDENTIAL 구조체의 Type 멤버 값이 CRED_TYPE_DOMAIN_EXTENDED 경우 대상 이름에 네임스페이스를 지정해야 합니다. 이 함수는 지정된 형식의 자격 증명을 하나만 반환할 수 있습니다.

이 함수는 이 형식의 여러 자격 증명을 반환할 수 있지만 CRED_TYPE_DOMAIN_EXTENDEDTargetInfo 매개 변수로 지정된 CREDENTIAL_TARGET_INFORMATION 구조체의 CredTypes 멤버에서 다른 형식과 혼합할 수 없습니다.

참고

wincred.h 헤더는 CRedReadDomainCredentials를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wincred.h
라이브러리 Advapi32.lib
DLL Advapi32.dll