다음을 통해 공유


CREDENTIALA 구조체(wincred.h)

CREDENTIAL 구조에는 개별 자격 증명이 포함됩니다.

통사론

typedef struct _CREDENTIALA {
  DWORD                  Flags;
  DWORD                  Type;
  LPSTR                  TargetName;
  LPSTR                  Comment;
  FILETIME               LastWritten;
  DWORD                  CredentialBlobSize;
  LPBYTE                 CredentialBlob;
  DWORD                  Persist;
  DWORD                  AttributeCount;
  PCREDENTIAL_ATTRIBUTEA Attributes;
  LPSTR                  TargetAlias;
  LPSTR                  UserName;
} CREDENTIALA, *PCREDENTIALA;

회원

Flags

자격 증명의 특성을 식별하는 비트 멤버입니다. 정의되지 않은 비트는 0으로 초기화해야 하며, 향후 향상된 기능을 허용하도록 변경되지 않아야 합니다.

의미
CRED_FLAGS_PROMPT_NOW
2(0x2)
자격 증명이 CredentialBlob 유지하지 않고 이 로그온 세션 중에 자격 증명이 기록되지 않은 경우 비트 집합입니다. 이 비트는 입력 시 무시되며 쿼리할 때 자동으로 설정됩니다.

형식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 표시되지 않은 자격 증명을 가져옵니다.

CRED_FLAGS_USERNAME_TARGET
4(0x4)
이 자격 증명에 TargetName 멤버가 UserName 멤버와 동일한 값으로 설정된 경우 비트가 설정됩니다. 이러한 자격 증명은 특정 사용자에 대한 CredentialBlob 저장하도록 설계된 자격 증명입니다. 자세한 내용은 CredMarshalCredential 함수를 참조하세요.

이 비트는 형식CRED_TYPE_DOMAIN_PASSWORD 또는 CRED_TYPE_DOMAIN_CERTIFICATE경우에만 지정할 수 있습니다.

Type

자격 증명의 형식입니다. 자격 증명을 만든 후에는 이 멤버를 변경할 수 없습니다. 다음 값은 유효합니다.

의미
CRED_TYPE_GENERIC
1(0x1)
자격 증명은 제네릭 자격 증명입니다. 자격 증명은 특정 인증 패키지에서 사용되지 않습니다. 자격 증명은 안전하게 저장되지만 다른 중요한 특성은 없습니다.
CRED_TYPE_DOMAIN_PASSWORD
2(0x2)
자격 증명은 암호 자격 증명이며 Microsoft의 인증 패키지와 관련이 있습니다. NTLM, Kerberos 및 Negotiate 인증 패키지는 명명된 대상에 연결할 때 이 자격 증명을 자동으로 사용합니다.
CRED_TYPE_DOMAIN_CERTIFICATE
3(0x3)
자격 증명은 인증서 자격 증명이며 Microsoft의 인증 패키지와 관련이 있습니다. Kerberos, Negotiate 및 Schannel 인증 패키지는 명명된 대상에 연결할 때 이 자격 증명을 자동으로 사용합니다.
CRED_TYPE_DOMAIN_VISIBLE_PASSWORD
4(0x4)
이 값은 더 이상 지원되지 않습니다.

Windows Server 2003 및 Windows XP: 자격 증명은 암호 자격 증명이며 Microsoft의 인증 패키지와 관련이 있습니다. Passport 인증 패키지는 명명된 대상에 연결할 때 이 자격 증명을 자동으로 사용합니다.

추가 값은 나중에 정의될 예정입니다. 이해하지 못하는 자격 증명 형식을 허용하도록 애플리케이션을 작성해야 합니다.

CRED_TYPE_GENERIC_CERTIFICATE
5(0x5)
자격 증명은 일반 인증 패키지인 인증서 자격 증명입니다.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

CRED_TYPE_DOMAIN_EXTENDED
6(0x6)
자격 증명은 확장 협상 패키지에서 지원됩니다.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

CRED_TYPE_MAXIMUM
7(0x7)
지원되는 자격 증명 형식의 최대 수입니다.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

CRED_TYPE_MAXIMUM_EX
CRED_TYPE_MAXIMUM+1000
새 애플리케이션이 이전 운영 체제에서 실행되도록 허용하는 지원되는 자격 증명 형식의 최대 확장된 수입니다.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

TargetName

자격 증명의 이름입니다. TargetName형식 멤버는 자격 증명을 고유하게 식별합니다. 자격 증명을 만든 후에는 이 멤버를 변경할 수 없습니다. 대신 이전 이름의 자격 증명을 삭제하고 새 이름을 만든 자격 증명을 삭제해야 합니다.

형식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 dfsRootDfsShareDFS 공유를 지정하는 경우 이 자격 증명은 특정 DFS 공유 및 해당 DFS 공유를 통해 도달한 서버와 일치합니다.

TargetName 단일 별표(*)인 경우 이 자격 증명은 모든 서버 이름과 일치합니다.

TargetName CRED_SESSION_WILDCARD_NAME 경우 이 자격 증명은 서버 이름과 일치합니다. 이 자격 증명은 단일 별표 앞에 일치하며 지속CRED_PERSIST_SESSION경우에만 유효합니다. 자격 증명은 기본 자격 증명을 일시적으로 재정의하려는 애플리케이션에서 설정할 수 있습니다.

이 멤버는 CRED_MAX_DOMAIN_TARGET_NAME_LENGTH(337) 문자보다 길 수 없습니다.

형식 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대한 일반 텍스트 유니코드 암호가 포함됩니다. CredentialBlobCredentialBlobSize 멤버에는 후행 0 문자가 포함되지 않습니다. 또한 CRED_TYPE_DOMAIN_PASSWORD경우 인증 패키지에서만 이 멤버를 읽을 수 있습니다.

Type 멤버가 CRED_TYPE_DOMAIN_CERTIFICATE경우 이 멤버는 UserName대한 명확한 테스트 유니코드 PIN을 포함합니다. CredentialBlobCredentialBlobSize 멤버에는 후행 0 문자가 포함되지 않습니다. 또한 이 멤버는 인증 패키지에서만 읽을 수 있습니다.

Type 멤버가 CRED_TYPE_GENERIC경우 이 멤버는 애플리케이션에서 정의됩니다.

자격 증명은 이식 가능해야 합니다. 애플리케이션은 CredentialBlob 데이터가 이식 가능한지 확인해야 합니다. 애플리케이션은 CredentialBlob데이터의 바이트 엔드리안 및 맞춤을 정의합니다.

Persist

이 자격 증명의 지속성을 정의합니다. 이 멤버는 읽고 쓸 수 있습니다.

의미
CRED_PERSIST_SESSION
1(0x1)
자격 증명은 로그온 세션의 수명 동안 유지됩니다. 이 동일한 사용자의 다른 로그온 세션에는 표시되지 않습니다. 이 사용자가 로그오프하고 다시 로그온한 후에는 존재하지 않습니다.
CRED_PERSIST_LOCAL_MACHINE
2(0x2)
자격 증명은 이 동일한 컴퓨터의 모든 후속 로그온 세션에 대해 유지됩니다. 이 동일한 컴퓨터에서 이 동일한 사용자의 다른 로그온 세션에 표시되며 다른 컴퓨터에서 이 사용자의 로그온 세션에는 표시되지 않습니다.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter 및 Windows XP Home Edition: 이 값은 지원되지 않습니다.

CRED_PERSIST_ENTERPRISE
3(0x3)
자격 증명은 이 동일한 컴퓨터의 모든 후속 로그온 세션에 대해 유지됩니다. 이 동일한 컴퓨터에서 이 동일한 사용자의 다른 로그온 세션과 다른 컴퓨터에서 이 사용자에 대한 로그온 세션에 표시됩니다.

이 옵션은 관리자 또는 사용자가 로밍 가능 상태가 없도록 사용자 계정을 구성하는 경우 로컬로 유지되는 자격 증명으로 구현할 수 있습니다. 예를 들어 사용자에게 로밍 프로필이 없는 경우 자격 증명은 로컬로만 유지됩니다.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter 및 Windows XP Home Edition: 이 값은 지원되지 않습니다.

AttributeCount

자격 증명과 연결할 애플리케이션 정의 특성의 수입니다. 이 멤버는 읽고 쓸 수 있습니다. 해당 값은 CRED_MAX_ATTRIBUTES(64)보다 클 수 없습니다.

Attributes

자격 증명과 연결된 애플리케이션 정의 특성입니다. 이 멤버는 읽고 쓸 수 있습니다.

TargetAlias

TargetName 멤버의 별칭입니다. 이 멤버는 읽고 쓸 수 있습니다. CRED_MAX_STRING_LENGTH(256자)보다 길 수 없습니다.

자격 증명 형식 CRED_TYPE_GENERIC경우 이 멤버는 NULL이 아닌수 있지만 자격 증명 관리자는 멤버를 무시합니다.

UserName

TargetName연결하는 데 사용되는 계정의 사용자 이름입니다.

자격 증명 형식CRED_TYPE_DOMAIN_PASSWORD경우 이 멤버는 DomainNameUserName 또는 UPN일 수 있습니다.

자격 증명 형식CRED_TYPE_DOMAIN_CERTIFICATE경우 이 멤버는 CertCredential을 사용하여 CredMarshalCredential 호출하여 만든 마샬링된 인증서 참조여야 합니다.

자격 증명 형식 CRED_TYPE_GENERIC경우 이 멤버는 NULL이 아닌수 있지만 자격 증명 관리자는 멤버를 무시합니다.

이 멤버는 CRED_MAX_USERNAME_LENGTH(513) 문자보다 길 수 없습니다.

발언

메모

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

요구 사항

요구
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
헤더 wincred.h