CredWriteDomainCredentialsA 함수(wincred.h)

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

구문

BOOL CredWriteDomainCredentialsA(
  [in] PCREDENTIAL_TARGET_INFORMATIONA TargetInfo,
  [in] PCREDENTIALA                    Credential,
  [in] DWORD                           Flags
);

매개 변수

[in] TargetInfo

대상 서버를 식별합니다. 명명 멤버 중 하나 이상이 NULL 이 아니어야 하며 NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainName 또는 DnsTreeName일 수 있습니다.

[in] Credential

쓸 자격 증명입니다.

자격 증명은 TargetInfo for instance 일치하는 자격 증명이어야 합니다. TargetName이 와일드카드 DNS 이름인 경우 자격 증명의 TargetName 멤버는 TargetInfoDnsServerName 멤버의 후위여야 합니다.

[in] Flags

API의 작업을 제어하는 플래그입니다. 다음 플래그가 정의됩니다.

의미
CRED_PRESERVE_CREDENTIAL_BLOB
자격 증명 BLOB은 동일한 자격 증명 이름 및 자격 증명 형식의 기존 자격 증명에서 유지되어야 합니다. 자격 증명 구조에 전달된 의 CredentialBlobSize 0이어야 합니다.

반환 값

함수가 성공하면 함수는 TRUE를 반환 합니다.

함수가 실패하면 FALSE를 반환합니다. GetLastError 함수를 호출하여 보다 구체적인 상태 코드를 가져옵니다. 다음 상태 코드를 반환할 수 있습니다.

다른 스마트 카드 오류는 CRED_TYPE_CERTIFICATE 자격 증명을 작성할 때 반환될 수 있습니다.

반환 코드 설명
ERROR_INVALID_PARAMETER
하나 이상의 매개 변수가 잘못되었습니다. 명명 매개 변수가 지정되지 않았거나 지정된 자격 증명에 Type 멤버가 CRED_TYPE_DOMAIN_PASSWORD 또는 CRED_TYPE_DOMAIN_CERTIFICATE 설정되지 않았거나 자격 증명이TargetInfo와 일치하지 않습니다.
ERROR_NO_SUCH_LOGON_SESSION
로그온 세션이 없거나 이 로그온 세션과 연결된 자격 증명 집합이 없습니다. 네트워크 로그온 세션에는 연결된 자격 증명 집합이 없습니다.
ERROR_INVALID_FLAGS
잘못된 값이 Flags 매개 변수에 지정되었습니다.
ERROR_BAD_USERNAME
자격 증명 구조에 전달된 의 UserName 멤버가 잘못되었습니다. 유효한 구문에 대한 설명은 해당 멤버의 정의를 참조하세요.
ERROR_NOT_FOUND
CRED_PRESERVE_CREDENTIAL_BLOB 지정되었으며 동일한 TargetNameType에 의한 기존 자격 증명이 없습니다.
SCARD_E_NO_READERS_AVAILABLE
작성 중인 CRED_TYPE_CERTIFICATE 자격 증명을 사용하려면 스마트 카드 판독기를 사용할 수 있어야 합니다.
SCARD_E_NO_SMARTCARD 또는 SCARD_W_REMOVED_CARD: CRED_TYPE_CERTIFICATE
작성 중인 자격 증명을 사용하려면 스마트 카드 삽입해야 합니다.
SCARD_W_WRONG_CHV
기록 중인 CRED_TYPE_CERTIFICATE 자격 증명에 대해 잘못된 PIN이 제공되었습니다.

설명

이 함수가 CRED_TYPE_CERTIFICATE 자격 증명을 작성하면 Credential-CredentialBlob 멤버는 Credential-UserName>>으로 지정된 인증서의 프라이빗 키를 보호하는 PIN을 지정합니다. 자격 증명 관리자는 PIN을 유지 관리하지 않습니다. 대신 나중에 CSP 및 인증 패키지에서 사용할 수 있도록 PIN이 인증서의 CSP에 전달됩니다. CSP는 PIN의 수명을 정의합니다. instance 경우 대부분의 CSP는 스마트 카드 제거 시 PIN을 플러시합니다.

CredWriteDomainCredentials 는 도메인(CRED_TYPE_DOMAIN_PASSWORD 또는 CRED_TYPE_DOMAIN_CERTIFICATE) 자격 증명의 특이성을 처리한다는 점에서 CredWrite 와 다릅니다. 도메인 자격 증명에는 둘 이상의 대상 멤버가 포함됩니다.

Credential 매개 변수로 지정된 CREDENTIAL 구조체의 Type 멤버 값이 CRED_TYPE_DOMAIN_EXTENDED 경우 대상 이름에 네임스페이스를 지정해야 합니다.

참고

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

요구 사항

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