Share via


CREDENTIALA-Struktur (wincred.h)

Die CREDENTIAL-Struktur enthält einzelne Anmeldeinformationen.

Syntax

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;

Member

Flags

Ein Bitelement, das Die Merkmale der Anmeldeinformationen identifiziert. Nicht definierte Bits sollten als Null initialisiert und nicht anderweitig geändert werden, um zukünftige Verbesserungen zu ermöglichen.

Wert Bedeutung
CRED_FLAGS_PROMPT_NOW
2 (0x2)
Bit wird festgelegt, wenn die Anmeldeinformationen das CredentialBlob nicht beibehalten und die Anmeldeinformationen während dieser Anmeldesitzung nicht geschrieben wurden. Dieses Bit wird bei der Eingabe ignoriert und bei der Abfrage automatisch festgelegt.

Wenn TypeCRED_TYPE_DOMAIN_CERTIFICATE ist, wird das CredentialBlob nicht über Anmeldesitzungen hinweg beibehalten, da die PIN eines Zertifikats sehr vertrauliche Informationen ist. Wenn die Anmeldeinformationen in den Anmeldeinformations-Manager geschrieben werden, wird die PIN an den CSP übergeben, der dem Zertifikat zugeordnet ist. Der CSP erzwingt eine PIN-Aufbewahrungsrichtlinie, die dem Zertifikat entspricht.

Wenn TypeCRED_TYPE_DOMAIN_PASSWORD oder CRED_TYPE_DOMAIN_CERTIFICATE ist, schlägt ein Authentifizierungspaket immer einen Authentifizierungsversuch fehl, wenn anmeldeinformationen verwendet werden, die als CRED_FLAGS_PROMPT_NOW gekennzeichnet sind. Die Anwendung (in der Regel über die Benutzeroberfläche des Schlüsselrings) fordert den Benutzer zur Eingabe des Kennworts auf. Die Anwendung speichert die Anmeldeinformationen und wiederholt die Authentifizierung. Da die Anmeldeinformationen kürzlich geschrieben wurden, erhält das Authentifizierungspaket jetzt Anmeldeinformationen, die nicht als CRED_FLAGS_PROMPT_NOW gekennzeichnet sind.

CRED_FLAGS_USERNAME_TARGET
4 (0x4)
Bit wird festgelegt, wenn für diese Anmeldeinformationen ein TargetName-Member auf denselben Wert wie das UserName-Element festgelegt ist. Solche Anmeldeinformationen sind zum Speichern des CredentialBlobs für einen bestimmten Benutzer konzipiert. Weitere Informationen finden Sie in der CredMarshalCredential-Funktion .

Dieses Bit kann nur angegeben werden, wenn TypeCRED_TYPE_DOMAIN_PASSWORD oder CRED_TYPE_DOMAIN_CERTIFICATE ist.

Type

Der Typ der Anmeldeinformationen. Dieser Member kann nicht geändert werden, nachdem die Anmeldeinformationen erstellt wurden. Die folgenden Werte sind gültig.

Wert Bedeutung
CRED_TYPE_GENERIC
1 (0x1)
Die Anmeldeinformationen sind generische Anmeldeinformationen. Die Anmeldeinformationen werden von keinem bestimmten Authentifizierungspaket verwendet. Die Anmeldeinformationen werden sicher gespeichert, haben aber keine weiteren wesentlichen Merkmale.
CRED_TYPE_DOMAIN_PASSWORD
2 (0x2)
Die Anmeldeinformationen sind Kennwortanmeldeinformationen und spezifisch für die Authentifizierungspakete von Microsoft. Die NTLM-, Kerberos- und Negotiate-Authentifizierungspakete verwenden diese Anmeldeinformationen automatisch, wenn sie eine Verbindung mit dem benannten Ziel herstellen.
CRED_TYPE_DOMAIN_CERTIFICATE
3 (0x3)
Die Anmeldeinformationen sind Zertifikatanmeldeinformationen und spezifisch für die Authentifizierungspakete von Microsoft. Die Kerberos-, Negotiate- und Schannel-Authentifizierungspakete verwenden diese Anmeldeinformationen automatisch, wenn sie eine Verbindung mit dem benannten Ziel herstellen.
CRED_TYPE_DOMAIN_VISIBLE_PASSWORD
4 (0x4)
Dieser Wert wird nicht mehr unterstützt.

Windows Server 2003 und Windows XP: Die Anmeldeinformationen sind Kennwortanmeldeinformationen und spezifisch für Authentifizierungspakete von Microsoft. Das Passport-Authentifizierungspaket verwendet diese Anmeldeinformationen automatisch, wenn eine Verbindung mit dem benannten Ziel hergestellt wird.

In Zukunft werden zusätzliche Werte definiert. Anwendungen sollten geschrieben werden, um Anmeldeinformationstypen zuzulassen, die sie nicht verstehen.

CRED_TYPE_GENERIC_CERTIFICATE
5 (0x5)
Bei den Anmeldeinformationen handelt es sich um Zertifikatanmeldeinformationen, bei denen es sich um ein generisches Authentifizierungspaket handelt.

Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt.

CRED_TYPE_DOMAIN_EXTENDED
6 (0x6)
Die Anmeldeinformationen werden von erweiterten Negotiate-Paketen unterstützt.

Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt.

CRED_TYPE_MAXIMUM
7 (0x7)
Die maximale Anzahl unterstützter Anmeldeinformationstypen.

Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt.

CRED_TYPE_MAXIMUM_EX
CRED_TYPE_MAXIMUM+1000
Die erweiterte maximale Anzahl unterstützter Anmeldeinformationstypen, mit denen neue Anwendungen auf älteren Betriebssystemen ausgeführt werden können.

Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt.

TargetName

Der Name der Anmeldeinformationen. Die Member TargetName und Type identifizieren die Anmeldeinformationen eindeutig. Dieser Member kann nicht geändert werden, nachdem die Anmeldeinformationen erstellt wurden. Stattdessen sollten die Anmeldeinformationen mit dem alten Namen gelöscht und die Anmeldeinformationen mit dem neuen Namen erstellt werden.

Wenn TypeCRED_TYPE_DOMAIN_PASSWORD oder CRED_TYPE_DOMAIN_CERTIFICATE ist, identifiziert dieses Element die Server, für die die Anmeldeinformationen verwendet werden sollen. Das Element ist entweder ein NetBIOS- oder DNS-Servername, ein DNS-Hostnamensuffix, das ein Platzhalterzeichen enthält, einen NetBIOS- oder DNS-Domänennamen, der eine Platzhalterzeichensequenz enthält, oder ein Sternchen.

Wenn TargetName ein DNS-Hostname ist, kann das TargetAlias-Element der NetBIOS-Name des Hosts sein.

Wenn targetName ein DNS-Hostnamensuffix ist, das ein Platzhalterzeichen enthält, ist die linke Bezeichnung des DNS-Hostnamens ein Sternchen (*), das angibt, dass der Zielname ein beliebiger Server ist, dessen Name mit dem angegebenen Namen endet, z. B. *.microsoft.com.

Wenn targetName ein Domänenname ist, der eine Platzhalterzeichensequenz enthält, ist die Syntax der Domänenname, gefolgt von einem umgekehrten Schrägstrich und Sternchen (*), der angibt, dass der Zielname ein beliebiger Server ist, der ein Mitglied der benannten Domäne (oder des Bereichs) ist.

Wenn TargetName ein DNS-Domänenname ist, der eine Platzhalterzeichensequenz enthält, kann das TargetAlias-Element ein NetBIOS-Domänenname sein, der eine Platzhaltersequenz für dieselbe Domäne verwendet.

Wenn TargetName eine DFS-Freigabe angibt, z. B. DfsRoot\DfsShare, dann entsprechen diese Anmeldeinformationen der spezifischen DFS-Freigabe und allen Servern, die über diese DFS-Freigabe erreicht werden.

Wenn TargetName ein einzelnes Sternchen (*) ist, entsprechen diese Anmeldeinformationen einem beliebigen Servernamen.

Wenn TargetName CRED_SESSION_WILDCARD_NAME ist, entsprechen diese Anmeldeinformationen einem beliebigen Servernamen. Diese Anmeldeinformationen werden vor einem einzelnen Sternchen übereinstimmen und sind nur gültig, wenn PersistCRED_PERSIST_SESSION ist. Die Anmeldeinformationen können von Anwendungen festgelegt werden, die die Standardanmeldeinformationen vorübergehend außer Kraft setzen möchten.

Dieser Member darf nicht länger als CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (337) Zeichen sein.

Wenn der Typ CRED_TYPE_GENERIC ist, sollte dieser Member den Dienst identifizieren, der die Anmeldeinformationen zusätzlich zum eigentlichen Ziel verwendet. Microsoft schlägt vor, dass dem Namen der Firma, die den Dienst implementiert, vorangestellt wird. Microsoft verwendet das Präfix "Microsoft". Von Microsoft geschriebene Dienste sollten ihren Dienstnamen anfügen, z. B. Microsoft_RAS_TargetName. Dieser Member darf nicht länger als CRED_MAX_GENERIC_TARGET_NAME_LENGTH (32767) Zeichen sein.

Bei diesem Member wird die Groß-/Kleinschreibung nicht beachtet.

Comment

Ein Zeichenfolgenkommentar des Benutzers, der diese Anmeldeinformationen beschreibt. Dieser Member darf nicht länger als CRED_MAX_STRING_LENGTH (256) Zeichen sein.

LastWritten

Die Zeit der letzten Änderung der Anmeldeinformationen in koordinierter Weltzeit (Greenwich Mean Time). Bei Schreibvorgängen wird der Wert dieses Members ignoriert.

CredentialBlobSize

Die Größe des CredentialBlob-Elements in Bytes. Dieser Member darf nicht größer als CRED_MAX_CREDENTIAL_BLOB_SIZE (5*512) Bytes sein.

CredentialBlob

Geheime Daten für die Anmeldeinformationen. Das CredentialBlob-Element kann sowohl gelesen als auch geschrieben sein.

Wenn das Type-ElementCRED_TYPE_DOMAIN_PASSWORD ist, enthält dieses Element das Klartext-Unicode-Kennwort für UserName. Die Member CredentialBlob und CredentialBlobSize enthalten kein nachfolgendes Nullzeichen. Außerdem kann dieser Member für CRED_TYPE_DOMAIN_PASSWORD nur von den Authentifizierungspaketen gelesen werden.

Wenn das Type-ElementCRED_TYPE_DOMAIN_CERTIFICATE ist, enthält dieses Element die eindeutige Unicode-Test-PIN für UserName. Die Member CredentialBlob und CredentialBlobSize enthalten kein nachfolgendes Nullzeichen. Außerdem kann dieses Element nur von den Authentifizierungspaketen gelesen werden.

Wenn das Type-ElementCRED_TYPE_GENERIC ist, wird dieser Member von der Anwendung definiert.

Anmeldeinformationen müssen portierbar sein. Anwendungen sollten sicherstellen, dass die Daten in CredentialBlob portierbar sind. Die Anwendung definiert das Byte-Endian und die Ausrichtung der Daten in CredentialBlob.

Persist

Definiert die Persistenz dieser Anmeldeinformationen. Dieser Member kann gelesen und geschrieben werden.

Wert Bedeutung
CRED_PERSIST_SESSION
1 (0x1)
Die Anmeldeinformationen bleiben für die Lebensdauer der Anmeldesitzung erhalten. Sie ist für andere Anmeldesitzungen desselben Benutzers nicht sichtbar. Sie ist nicht vorhanden, nachdem sich dieser Benutzer abmeldet und wieder aktiviert hat.
CRED_PERSIST_LOCAL_MACHINE
2 (0x2)
Die Anmeldeinformationen werden für alle nachfolgenden Anmeldesitzungen auf demselben Computer beibehalten. Sie ist für andere Anmeldesitzungen dieses Benutzers auf demselben Computer sichtbar und für Anmeldesitzungen für diesen Benutzer auf anderen Computern nicht sichtbar.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter und Windows XP Home Edition: Dieser Wert wird nicht unterstützt.

CRED_PERSIST_ENTERPRISE
3 (0x3)
Die Anmeldeinformationen werden für alle nachfolgenden Anmeldesitzungen auf demselben Computer beibehalten. Sie ist für andere Anmeldesitzungen dieses Benutzers auf demselben Computer und für Anmeldesitzungen für diesen Benutzer auf anderen Computern sichtbar.

Diese Option kann als lokal persistente Anmeldeinformationen implementiert werden, wenn der Administrator oder Benutzer das Benutzerkonto so konfiguriert, dass es keinen roamfähigen Zustand aufweist. Wenn der Benutzer über kein Roamingprofil verfügt, werden die Anmeldeinformationen für instance nur lokal gespeichert.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter und Windows XP Home Edition: Dieser Wert wird nicht unterstützt.

AttributeCount

Die Anzahl der anwendungsdefinierten Attribute, die den Anmeldeinformationen zugeordnet werden sollen. Dieser Member kann gelesen und geschrieben werden. Sein Wert darf nicht größer als CRED_MAX_ATTRIBUTES (64) sein.

Attributes

Anwendungsdefinierte Attribute, die den Anmeldeinformationen zugeordnet sind. Dieser Member kann gelesen und geschrieben werden.

TargetAlias

Alias für das TargetName-Element . Dieser Member kann gelesen und geschrieben werden. Es darf nicht länger als CRED_MAX_STRING_LENGTH (256) Zeichen sein.

Wenn der Anmeldeinformationstyp CRED_TYPE_GENERIC ist, kann dieser Member nicht NULL sein, aber der Anmeldeinformations-Manager ignoriert den Member.

UserName

Der Benutzername des Kontos, das zum Herstellen einer Verbindung mit TargetName verwendet wird.

Wenn der Anmeldeinformationstyp CRED_TYPE_DOMAIN_PASSWORD ist, kann dieser Member entweder ein Domänenname-Benutzername oder ein UPN sein.

Wenn der Anmeldeinformationstyp CRED_TYPE_DOMAIN_CERTIFICATE ist, muss es sich bei diesem Member um einen gemarshallten Zertifikatverweis handeln, der durch Aufrufen von CredMarshalCredential mit certCredential erstellt wird.

Wenn der Anmeldeinformationstyp CRED_TYPE_GENERIC ist, kann dieser Member nicht NULL sein, aber der Anmeldeinformations-Manager ignoriert den Member.

Dieser Member darf nicht länger als CRED_MAX_USERNAME_LENGTH (513) Zeichen sein.

Hinweise

Hinweis

Der wincred.h-Header definiert CREDENTIAL als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile wincred.h