Freigeben über


CredWriteDomainCredentialsA-Funktion (wincred.h)

Die CredWriteDomainCredentials--Funktion schreibt Domänenanmeldeinformationen in den Anmeldeinformationssatz des Benutzers. Der verwendete Anmeldeinformationssatz ist der Der Anmeldeinformationssatz, der der Anmeldesitzung des aktuellen Tokens zugeordnet ist. Das Token darf die SID des Benutzers nicht deaktiviert haben.

Syntax

BOOL CredWriteDomainCredentialsA(
  [in] PCREDENTIAL_TARGET_INFORMATIONA TargetInfo,
  [in] PCREDENTIALA                    Credential,
  [in] DWORD                           Flags
);

Parameter

[in] TargetInfo

Identifiziert den Zielserver. Mindestens eines der Benennungsmitglieder muss nichtNULL- sein und kann NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainNameoder DnsTreeName.

[in] Credential

Zu schreibende Anmeldeinformationen.

Die Anmeldeinformationen müssen eine sein, die TargetInfo- entspricht. Wenn es sich bei der TargetName- um einen DNS-Wildcardnamen handelt, muss das TargetName Mitglied der Anmeldeinformationen ein Postfix des DnsServerName Member aus dem TargetInfo-sein.

[in] Flags

Flags zum Steuern des Vorgangs der API. Das folgende Flag ist definiert.

Wert Bedeutung
CRED_PRESERVE_CREDENTIAL_BLOB
Das BLOB für Anmeldeinformationen sollte aus den bereits vorhandenen Anmeldeinformationen mit demselben Anmeldeinformationsnamen und Anmeldeinformationstyp beibehalten werden. 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.

Rückgabecode Beschreibung
ERROR_INVALID_PARAMETER
Mindestens ein Parameter ist ungültig. Entweder wurden keine der Benennungsparameter angegeben, oder die angegebenen Anmeldeinformationen haben den Type Member nicht auf CRED_TYPE_DOMAIN_PASSWORD oder CRED_TYPE_DOMAIN_CERTIFICATE festgelegt, oder die Anmeldeinformations- stimmt nicht mit dem TargetInfo-überein.
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_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 gültiger Syntaxen 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: Die CRED_TYPE_CERTIFICATE
Für die 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

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-->UserNameangegeben wird. Der Anmeldeinformations-Manager verwaltet die PIN nicht. Stattdessen wird die PIN an den CSP des Zertifikats zur späteren Verwendung durch den CSP und die Authentifizierungspakete übergeben. Der CSP definiert die Lebensdauer der PIN. Die meisten CSPs leeren die PIN beispielsweise beim Entfernen von Smartcards.

CredWriteDomainCredentials unterscheidet sich von CredWrite- darin, dass die Idiosyncies von Domänenanmeldeinformationen (CRED_TYPE_DOMAIN_PASSWORD oder CRED_TYPE_DOMAIN_CERTIFICATE) behandelt werden. Domänenanmeldeinformationen enthalten mehr als ein Zielmitglied.

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.

Anmerkung

Der wincred.h-Header definiert CredWriteDomainCredentials 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
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