Share via


CredReadDomainCredentialsA-Funktion (wincred.h)

Die CredReadDomainCredentials-Funktion liest die Domänenanmeldeinformationen aus dem Anmeldeinformationssatz des Benutzers. Bei dem verwendeten Anmeldeinformationssatz handelt es sich um den Satz, der der Anmeldesitzung des aktuellen Tokens zugeordnet ist. Für das Token darf die SID des Benutzers nicht deaktiviert sein.

Syntax

BOOL CredReadDomainCredentialsA(
  [in]  PCREDENTIAL_TARGET_INFORMATIONA TargetInfo,
  [in]  DWORD                           Flags,
  [out] DWORD                           *Count,
  [out] PCREDENTIALA                    **Credential
);

Parameter

[in] TargetInfo

Zielinformationen, die den Zielserver identifizieren. Mindestens eines der Namensmember darf nicht NULL sein: NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainName oder DnsTreeName.

[in] Flags

Flags, die den Vorgang der Funktion steuern.

Das folgende Flag ist definiert:

CRED_CACHE_TARGET_INFORMATION

Speichern Sie targetInfo für einen späteren Lesevorgang mithilfe von CredGetTargetInfo zwischen.

[out] Count

Anzahl der im Anmeldeinformationsarray zurückgegebenen Anmeldeinformationen.

[out] Credential

Zeiger auf ein Array von Zeigern auf Anmeldeinformationen. Die spezifischsten vorhandenen Anmeldeinformationen, die mit TargetInfo übereinstimmen, werden zurückgegeben. Wenn Anmeldeinformationen verschiedener Typen (z. B. CRED_TYPE_DOMAIN_PASSWORD und CRED_TYPE_DOMAIN_CERTIFICATE Anmeldeinformationen) vorhanden sind, wird einer jedes Typs zurückgegeben. Wenn eine Verbindung mit dem benannten Ziel hergestellt werden soll, werden diese spezifischen Anmeldeinformationen verwendet.

Nur die von TargetInfo angegebenen Anmeldeinformationstypen. CredTypes-Array wird zurückgegeben. Das zurückgegebene Anmeldeinformationsarray wird in derselben Reihenfolge wie targetInfo sortiert. CredTypes-Array. Das heißt, Authentifizierungspakete geben einen bevorzugten Anmeldeinformationstyp an, indem sie ihn weiter oben in TargetInfo angeben. CredTypes-Array. Wenn TargetInfo. CredTypeCount ist null, das Anmeldeinformationsarray wird in der folgenden sortierten Reihenfolge zurückgegeben:

  • CRED_TYPE_DOMAIN_CERTIFICATE
  • CRED_TYPE_DOMAIN_PASSWORD

Der zurückgegebene Puffer ist ein einzelner zugeordneter Block. Alle im Puffer enthaltenen Zeiger sind Zeiger auf Speicherorte innerhalb dieses einzelnen zugeordneten Blocks. Der einzelne zurückgegebene Puffer muss durch Aufrufen von CredFree freigegeben werden.

Rückgabewert

Die Funktion gibt TRUE bei Erfolg und FALSE bei Einem Fehler zurück. Die GetLastError-Funktion kann aufgerufen werden, um einen spezifischeren status Code abzurufen. Die folgenden status Codes können zurückgegeben werden:

  • ERROR_INVALID_PARAMETER

    Keiner der Benennungsparameter wurde angegeben.

  • ERROR_NOT_FOUND

    Es gibt keine Anmeldeinformationen, die den angegebenen Benennungsparametern entsprechen.

  • ERROR_NO_SUCH_LOGON_SESSION

    Die Anmeldesitzung ist nicht vorhanden, oder dieser Anmeldesitzung ist kein Anmeldeinformationssatz zugeordnet. Netzwerkanmeldungssitzungen verfügen nicht über einen zugeordneten Anmeldeinformationssatz.

  • ERROR_INVALID_FLAGS

    Für den Flags-Parameter wurde ein ungültiges Flag angegeben.

Hinweise

Diese Funktion gibt die spezifischsten Anmeldeinformationen zurück, die den Benennungsparametern entsprechen. Wenn für instance Anmeldeinformationen vorhanden sind, die mit dem Namen des Zielservers übereinstimmen, und anmeldeinformationen, die dem Namen der Zieldomäne entsprechen, werden nur die serverspezifischen Anmeldeinformationen zurückgegeben. Dies sind die Anmeldeinformationen, die verwendet werden.

Die folgende Liste gibt die Reihenfolge (von der spezifischsten bis zur geringsten Spezifischen) der zurückgegebenen Anmeldeinformationen an, wenn mehrere übereinstimmen:

  • Der Zielname der Anmeldeinformationen hat das Format <DfsRoot>\<DfsShare> und ist eine genaue Übereinstimmung mit TargetName.
  • Eine genaue Übereinstimmung für dnsServerName.
  • Eine genaue Übereinstimmung mit NetBIOSServerName.
  • Eine genaue Übereinstimmung für TargetName.
  • Eine Übereinstimmung des DnsServerName mit den Anmeldeinformationen des Wildcardservers. Wenn mehrere Wildcardserveranmeldeinformationen übereinstimmen, werden die Anmeldeinformationen mit dem längeren TargetName verwendet. Das heißt, anmeldeinformationen für *.example.microsoft.com werden anstelle von Anmeldeinformationen für *.microsoft.com verwendet.
  • Eine genaue Übereinstimmung von DnsDomainName mit einem Wildcard-Domänenanmeldeinformationen im Format <DnsDomainName>\*.
  • Eine genaue Übereinstimmung des NetBIOSDomainName mit einer Platzhalter-Domänenanmeldeinformation im Format <NetBIOSDomainName>\*
  • Die Anmeldeinformationen mit dem Namen CRED_SESSION_WILDCARD_NAME.
  • Die Anmeldeinformationen mit dem Namen "*".
CredReadDomainCredentials unterscheidet sich von CredRead darin, dass es die Idiosyncrasies von Domänenanmeldeinformationen (CRED_TYPE_DOMAIN_PASSWORD oder CRED_TYPE_DOMAIN_CERTIFICATE) verarbeitet. Domänenanmeldeinformationen enthalten mehr als ein Zielelement.

Wenn der Wert des Type-Elements der durch den Credentials-Parameter angegebenen CREDENTIAL-StrukturCRED_TYPE_DOMAIN_EXTENDED ist, muss im Zielnamen ein Namespace angegeben werden. Diese Funktion kann nur eine Anmeldeinformation des angegebenen Typs zurückgeben.

Diese Funktion kann mehrere Anmeldeinformationen dieses Typs zurückgeben, aber CRED_TYPE_DOMAIN_EXTENDED können nicht mit anderen Typen im CredTypes-Member der CREDENTIAL_TARGET_INFORMATION-Struktur gemischt werden, die durch den TargetInfo-Parameter angegeben wird.

Hinweis

Der wincred.h-Header definiert CredReadDomainCredentials 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]
Zielplattform Windows
Kopfzeile wincred.h
Bibliothek Advapi32.lib
DLL Advapi32.dll