Share via


CredWriteA-Funktion (wincred.h)

Die CredWrite-Funktion erstellt neue Anmeldeinformationen oder ändert vorhandene Anmeldeinformationen im Anmeldeinformationssatz des Benutzers. Die neuen Anmeldeinformationen sind der Anmeldesitzung des aktuellen Tokens zugeordnet. Für das Token darf die Sicherheits-ID (SID) des Benutzers nicht deaktiviert sein.

Syntax

BOOL CredWriteA(
  [in] PCREDENTIALA Credential,
  [in] DWORD        Flags
);

Parameter

[in] Credential

Ein Zeiger auf die zu schreibende CREDENTIAL-Struktur .

[in] Flags

Flags, die den Vorgang der Funktion steuern. Das folgende Flag ist definiert.

Wert Bedeutung
CRED_PRESERVE_CREDENTIAL_BLOB
Das Anmeldeinformationsblob aus vorhandenen Anmeldeinformationen wird mit demselben Anmeldeinformationsnamen und demselben Anmeldeinformationstyp beibehalten. Die CredentialBlobSize der in Credential übergebenen Struktur muss 0 sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion TRUE zurück.

Wenn die Funktion fehlschlägt, gibt sie FALSE zurück. Rufen Sie die GetLastError-Funktion auf, um einen spezifischeren status Code abzurufen. Die folgenden status Codes können zurückgegeben werden.

Beim Schreiben einer CRED_TYPE_CERTIFICATE Anmeldeinformationen können weitere Fehler der intelligenten Karte zurückgegeben werden.

Rückgabecode/-wert BESCHREIBUNG
ERROR_NO_SUCH_LOGON_SESSION
Die Anmeldesitzung ist nicht vorhanden, oder dieser Anmeldesitzung sind keine Anmeldeinformationen zugeordnet. Netzwerkanmeldungssitzungen verfügen nicht über einen zugeordneten Anmeldeinformationssatz.
ERROR_INVALID_PARAMETER
Bestimmte Felder können in vorhandenen Anmeldeinformationen nicht geändert werden. Dieser Fehler wird zurückgegeben, wenn ein Feld nicht mit dem Wert in einem geschützten Feld der vorhandenen Anmeldeinformationen übereinstimmt.
ERROR_INVALID_FLAGS
Für den Flags-Parameter wurde ein ungültiger Wert angegeben.
ERROR_BAD_USERNAME
Das UserName-Element der in Credential übergebenen Struktur ist ungültig. Eine Beschreibung der gültigen Benutzernamensyntax finden Sie in der Definition dieses Elements.
ERROR_NOT_FOUND
CRED_PRESERVE_CREDENTIAL_BLOB wurde angegeben, und es sind keine Anmeldeinformationen mit demselben TargetName und Type vorhanden.
SCARD_E_NO_READERS_AVAILABLE
Für die CRED_TYPE_CERTIFICATE Anmeldeinformationen, die geschrieben werden, muss der Smart Karte Reader verfügbar sein.
SCARD_E_NO_SMARTCARD oder SCARD_W_REMOVED_CARD
Ein CRED_TYPE_CERTIFICATE Anmeldeinformationen, die geschrieben werden, erfordert das Einfügen des intelligenten Karte.
SCARD_W_WRONG_CHV
Die falsche PIN wurde für die CRED_TYPE_CERTIFICATE geschriebenen Anmeldeinformationen angegeben.

Hinweise

Diese Funktion erstellt Anmeldeinformationen, wenn keine Anmeldeinformationen mit dem angegebenen TargetName und Type vorhanden sind. Wenn anmeldeinformationen mit dem angegebenen TargetName und Type vorhanden sind, ersetzen die neuen angegebenen Anmeldeinformationen den vorhandenen.

Wenn diese Funktion einen CRED_TYPE_CERTIFICATE Anmeldeinformationen schreibt, gibt das Credential-CredentialBlob-Mitglied> die PIN an, die den privaten Schlüssel des zertifikats schützt, das vom Member "Credential-UserName>" angegeben wird. Der Anmeldeinformations-Manager verwaltet die PIN nicht. Stattdessen wird die PIN an den kryptografischen Dienstanbieter (CSP) übergeben, der im Zertifikat angegeben ist, zur späteren Verwendung durch den CSP und die Authentifizierungspakete. Der CSP definiert die Lebensdauer der PIN. Die meisten CSPs leeren die PIN, wenn der smarte Karte aus dem smarten Karte-Reader entfernt wird.

Wenn der Wert des Type-Members der CREDENTIAL-Struktur , die durch den Credential-Parameter angegeben wird , CRED_TYPE_DOMAIN_EXTENDED ist, muss im Zielnamen ein Namespace angegeben werden. Diese Funktion unterstützt das Schreiben in Zielnamen, die Wildcards enthalten, nicht.

Hinweis

Der wincred.h-Header definiert CredWrite als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code 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]
Zielplattform Windows
Kopfzeile wincred.h
Bibliothek Advapi32.lib
DLL Advapi32.dll

Weitere Informationen

ANMELDEINFORMATIONEN