Freigeben über


CredWriteA-Funktion (wincred.h)

Die CredWrite-Funktion erstellt neue Anmeldeinformationen oder ändert eine vorhandene Anmeldeinformation im Anmeldeinformationssatz des Benutzers. Die neuen Anmeldeinformationen sind der Anmeldesitzung des aktuellen Tokens zugeordnet. Das Token darf nicht die Sicherheits-ID des Benutzers (SID) deaktiviert haben.

Syntax

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

Parameter

[in] Credential

Ein Zeiger auf die CREDENTIAL- Struktur, die geschrieben werden soll.

[in] Flags

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

Wert Bedeutung
CRED_PRESERVE_CREDENTIAL_BLOB
Das BLOB der Anmeldeinformationen aus vorhandenen Anmeldeinformationen wird mit demselben Anmeldeinformationsnamen und Anmeldeinformationstyp beibehalten. Die CredentialBlobSize- der übergebenen Anmeldeinformations struktur muss null sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion TRUEzurück.

Wenn die Funktion fehlschlägt, wird FALSE-zurückgegeben. Rufen Sie die GetLastError--Funktion auf, um einen spezifischeren Statuscode abzurufen. Die folgenden Statuscodes können zurückgegeben werden.

Andere Smartcardfehler können beim Schreiben einer CRED_TYPE_CERTIFICATE Anmeldeinformationen zurückgegeben werden.

Zurückgeben von Code/Wert Beschreibung
ERROR_NO_SUCH_LOGON_SESSION
Die Anmeldesitzung ist nicht vorhanden, oder dieser Anmeldesitzung sind keine Anmeldeinformationen zugeordnet. Netzwerkanmeldesitzungen 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 parameter Flags wurde ein ungültiger Wert angegeben.
ERROR_BAD_USERNAME
Das UserName Mitglied der übergebenen -Struktur für Anmeldeinformationen 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 Typevorhanden.
SCARD_E_NO_READERS_AVAILABLE
Für die CRED_TYPE_CERTIFICATE geschriebenen Anmeldeinformationen muss der Smartcardleser verfügbar sein.
SCARD_E_NO_SMARTCARD oder SCARD_W_REMOVED_CARD
Für eine CRED_TYPE_CERTIFICATE geschriebenen Anmeldeinformationen muss die Smartcard eingefügt werden.
SCARD_W_WRONG_CHV
Die falsche PIN wurde für die CRED_TYPE_CERTIFICATE geschriebenen Anmeldeinformationen bereitgestellt.

Bemerkungen

Diese Funktion erstellt eine Anmeldeinformation, wenn keine Anmeldeinformationen mit dem angegebenen TargetName- und Typ vorhanden sind. Wenn eine Anmeldeinformation mit dem angegebenen TargetName- und Type vorhanden ist, ersetzt die neue angegebene Anmeldeinformation die vorhandene.

Wenn diese Funktion eine CRED_TYPE_CERTIFICATE Anmeldeinformationen schreibt, gibt das Anmeldeinformations-->CredentialBlob Mitglied die PIN an, die den privaten Schlüssel des Zertifikats schützt, das durch die Anmeldeinformations-->UserName Mitglied angegeben wird. Der Anmeldeinformations-Manager verwaltet die PIN nicht. Stattdessen wird die PIN an den kryptografischen Dienstanbieter (CSP) übergeben, der für die spätere Verwendung durch den CSP und die Authentifizierungspakete auf dem Zertifikat angegeben ist. Der CSP definiert die Lebensdauer der PIN. Die meisten CSPs leeren die PIN, wenn die Smartcard aus dem Smartcardleser entfernt wird.

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

Anmerkung

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 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
mindestens unterstützte Client- Windows XP [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2003 [Nur Desktop-Apps]
Zielplattform- Fenster
Header- wincred.h
Library Advapi32.lib
DLL- Advapi32.dll

Siehe auch

ANMELDEINFORMATIONEN