CREDENTIALW 구조체(wincred.h)
CREDENTIAL 구조에는 개별 자격 증명이 포함됩니다.
구문
typedef struct _CREDENTIALW {
DWORD Flags;
DWORD Type;
#if ...
wchar_t *TargetName;
#else
LPWSTR TargetName;
#endif
#if ...
wchar_t *Comment;
#else
LPWSTR Comment;
#endif
FILETIME LastWritten;
DWORD CredentialBlobSize;
LPBYTE CredentialBlob;
DWORD Persist;
DWORD AttributeCount;
PCREDENTIAL_ATTRIBUTEW Attributes;
#if ...
wchar_t *TargetAlias;
#else
LPWSTR TargetAlias;
#endif
#if ...
wchar_t *UserName;
#else
LPWSTR UserName;
#endif
} CREDENTIALW, *PCREDENTIALW;
멤버
Flags
자격 증명의 특성을 식별하는 비트 멤버입니다. 정의되지 않은 비트는 0으로 초기화해야 하며 나중에 향상될 수 있도록 변경되지 않아야 합니다.
값 | 의미 |
---|---|
|
자격 증명이 CredentialBlob 을 유지하지 않고 이 로그온 세션 중에 자격 증명이 작성되지 않은 경우 비트 집합입니다. 이 비트는 입력 시 무시되며 쿼리할 때 자동으로 설정됩니다.
Type이 CRED_TYPE_DOMAIN_CERTIFICATE 경우 인증서의 PIN이 매우 중요한 정보이므로 CredentialBlob은 로그온 세션에서 유지되지 않습니다. 실제로 자격 증명이 자격 증명 관리자에게 기록되면 PIN은 인증서와 연결된 CSP에 전달됩니다. CSP는 인증서에 적합한 PIN 보존 정책을 적용합니다. 형식이 CRED_TYPE_DOMAIN_PASSWORD 또는 CRED_TYPE_DOMAIN_CERTIFICATE 경우 인증 패키지는 CRED_FLAGS_PROMPT_NOW 표시된 자격 증명을 사용할 때 항상 인증 시도에 실패합니다. 애플리케이션(일반적으로 키 링 UI를 통해)은 사용자에게 암호를 묻는 메시지를 표시합니다. 애플리케이션은 자격 증명을 저장하고 인증을 다시 시도합니다. 자격 증명이 최근에 작성되었으므로 인증 패키지는 이제 CRED_FLAGS_PROMPT_NOW 표시되지 않은 자격 증명을 가져옵니다. |
|
이 자격 증명에 TargetName 멤버가 UserName 멤버와 동일한 값으로 설정된 경우 비트가 설정됩니다. 이러한 자격 증명은 특정 사용자에 대한 CredentialBlob 을 저장하도록 설계된 자격 증명입니다. 자세한 내용은 CredMarshalCredential 함수를 참조하세요 .
이 비트는 Type이 CRED_TYPE_DOMAIN_PASSWORD 또는CRED_TYPE_DOMAIN_CERTIFICATE 경우에만 지정할 수 있습니다. |
Type
자격 증명의 형식입니다. 자격 증명을 만든 후에는 이 멤버를 변경할 수 없습니다. 다음 값이 유효합니다.
TargetName
자격 증명의 이름입니다. TargetName 및 Type 멤버는 자격 증명을 고유하게 식별합니다. 자격 증명을 만든 후에는 이 멤버를 변경할 수 없습니다. 대신 이전 이름의 자격 증명을 삭제하고 새 이름을 만든 자격 증명을 삭제해야 합니다.
Type이 CRED_TYPE_DOMAIN_PASSWORD 또는 CRED_TYPE_DOMAIN_CERTIFICATE 경우 이 멤버는 자격 증명을 사용할 서버 또는 서버를 식별합니다. 멤버는 NetBIOS 또는 DNS 서버 이름, 와일드카드 문자가 포함된 DNS 호스트 이름 접미사, 와일드카드 문자 시퀀스를 포함하는 NetBIOS 또는 DNS 도메인 이름 또는 별표입니다.
TargetName이 DNS 호스트 이름인 경우 TargetAlias 멤버는 호스트의 NetBIOS 이름이 될 수 있습니다.
TargetName이 와일드카드 문자를 포함하는 DNS 호스트 이름 접미사인 경우 DNS 호스트 이름의 맨 왼쪽 레이블은 별표(*)이며, 이는 대상 이름이 지정된 이름으로 끝나는 서버(예: *.microsoft.com)임을 나타냅니다.
TargetName이 와일드카드 문자 시퀀스를 포함하는 도메인 이름인 경우 구문은 도메인 이름 뒤에 백슬래시 및 별표(\*)가 되며, 이는 대상 이름이 명명된 도메인(또는 영역)의 멤버인 모든 서버임을 나타냅니다.
TargetName이 와일드카드 문자 시퀀스를 포함하는 DNS 도메인 이름인 경우 TargetAlias 멤버는 동일한 도메인에 와일드카드 시퀀스를 사용하는 NetBIOS 도메인 이름이 될 수 있습니다.
TargetName이 DFS 공유(예: DfsRoot\DfsShare)를 지정하는 경우 이 자격 증명은 특정 DFS 공유 및 해당 DFS 공유를 통해 도달한 모든 서버와 일치합니다.
TargetName이 단일 별표(*)인 경우 이 자격 증명은 모든 서버 이름과 일치합니다.
TargetName이 CRED_SESSION_WILDCARD_NAME 경우 이 자격 증명은 모든 서버 이름과 일치합니다. 이 자격 증명은 단일 별표 앞에 일치하며 Persist 가 CRED_PERSIST_SESSION 경우에만 유효합니다. 자격 증명은 기본 자격 증명을 일시적으로 재정의하려는 애플리케이션에서 설정할 수 있습니다.
이 멤버는 CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (337) 문자보다 길 수 없습니다.
Type이 CRED_TYPE_GENERIC 경우 이 멤버는 실제 대상 외에도 자격 증명을 사용하는 서비스를 식별해야 합니다. Microsoft는 서비스를 구현하는 회사의 이름으로 이름을 접두사로 지정할 것을 제안합니다. Microsoft는 "Microsoft" 접두사를 사용합니다. Microsoft에서 작성한 서비스는 서비스 이름(예: Microsoft_RAS_TargetName)을 추가해야 합니다. 이 멤버는 CRED_MAX_GENERIC_TARGET_NAME_LENGTH (32767) 문자보다 길 수 없습니다.
이 멤버는 대/소문자를 구분하지 않습니다.
Comment
이 자격 증명을 설명하는 사용자의 문자열 주석입니다. 이 멤버는 CRED_MAX_STRING_LENGTH (256자)보다 길 수 없습니다.
LastWritten
조정된 세계시(그리니치 표준시)에서 자격 증명의 마지막 수정 시간입니다. 쓰기 작업의 경우 이 멤버의 값은 무시됩니다.
CredentialBlobSize
CredentialBlob 멤버의 크기(바이트)입니다. 이 멤버는 CRED_MAX_CREDENTIAL_BLOB_SIZE (5*512) 바이트보다 클 수 없습니다.
CredentialBlob
자격 증명에 대한 비밀 데이터입니다. CredentialBlob 멤버를 읽고 쓸 수 있습니다.
Type 멤버가 CRED_TYPE_DOMAIN_PASSWORD 경우 이 멤버에는 UserName에 대한 일반 텍스트 유니코드 암호가 포함됩니다. CredentialBlob 및 CredentialBlobSize 멤버에는 후행 0 문자가 포함되지 않습니다. 또한 CRED_TYPE_DOMAIN_PASSWORD 경우 인증 패키지에서만 이 멤버를 읽을 수 있습니다.
Type 멤버가 CRED_TYPE_DOMAIN_CERTIFICATE 경우 이 멤버는 UserName에 대한 명확한 테스트 유니코드 PIN을 포함합니다. CredentialBlob 및 CredentialBlobSize 멤버에는 후행 0 문자가 포함되지 않습니다. 또한 이 멤버는 인증 패키지에서만 읽을 수 있습니다.
Type 멤버가 CRED_TYPE_GENERIC 경우 이 멤버는 애플리케이션에서 정의됩니다.
자격 증명은 이식 가능해야 합니다. 애플리케이션은 CredentialBlob 의 데이터가 이식 가능한지 확인해야 합니다. 애플리케이션은 CredentialBlob에서 데이터의 바이트-엔디안 및 맞춤을 정의합니다.
Persist
이 자격 증명의 지속성을 정의합니다. 이 멤버는 읽고 쓸 수 있습니다.
AttributeCount
자격 증명과 연결할 애플리케이션 정의 특성의 수입니다. 이 멤버는 읽고 쓸 수 있습니다. 해당 값은 CRED_MAX_ATTRIBUTES (64)보다 클 수 없습니다.
Attributes
자격 증명과 연결된 애플리케이션 정의 특성입니다. 이 멤버는 읽고 쓸 수 있습니다.
TargetAlias
TargetName 멤버의 별칭입니다. 이 멤버는 읽고 쓸 수 있습니다. CRED_MAX_STRING_LENGTH(256) 문자보다 길 수 없습니다.
자격 증명 형식 이 CRED_TYPE_GENERIC 경우 이 멤버는 NULL이 아닐 수 있지만 자격 증명 관리자는 멤버를 무시합니다.
UserName
TargetName에 연결하는 데 사용되는 계정의 사용자 이름입니다.
자격 증명 형식 이 CRED_TYPE_DOMAIN_PASSWORD 경우 이 멤버는 DomainName\UserName 또는 UPN일 수 있습니다.
자격 증명 형식 이 CRED_TYPE_DOMAIN_CERTIFICATE 경우 이 멤버는 CertCredential을 사용하여 CredMarshalCredential 을 호출하여 만든 마샬링된 인증서 참조여야 합니다.
자격 증명 형식 이 CRED_TYPE_GENERIC 경우 이 멤버는 NULL이 아닐 수 있지만 자격 증명 관리자는 멤버를 무시합니다.
이 멤버는 CRED_MAX_USERNAME_LENGTH (513) 문자보다 길 수 없습니다.
설명
참고
wincred.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 CREDENTIAL을 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
머리글 | wincred.h |
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기