Freigeben über


CredReadDomainCredentialsA-Funktion (wincred.h)

Die CredReadDomainCredentials--Funktion liest die Domänenanmeldeinformationen aus dem Anmeldeinformationssatz des Benutzers vor. 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 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 Benennungsmitglieder darf nicht NULL-sein: NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainName oder DnsTreeName.

[in] Flags

Flags, die den Vorgang der Funktion steuern.

Das folgende Kennzeichen ist definiert:

CRED_CACHE_TARGET_INFORMATION

Cache the TargetInfo for a subsequent read using CredGetTargetInfo.

[out] Count

Die Anzahl der im Array "Anmeldeinformationen" zurückgegebenen Anmeldeinformationen.

[out] Credential

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

Nur die anmeldeinformationstypen, die vom TargetInfo-angegeben werden. CredTypes-Array wird zurückgegeben. Das zurückgegebene Anmeldeinformationen Arrays wird in der gleichen Reihenfolge wie die TargetInfo-sortiert. CredTypes-Array. Das heißt, Authentifizierungspakete geben einen bevorzugten Anmeldeinformationstyp an, indem Sie ihn weiter oben im TargetInfo-angeben. CredTypes-Array. Wenn TargetInfo. CredTypeCount ist null, das Credentials Array 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 Positionen innerhalb dieses einzelnen zugeordneten Blocks. Der einzelne zurückgegebene Puffer muss durch Aufrufen von CredFreefreigegeben werden.

Rückgabewert

Die Funktion gibt TRUE bei Erfolg zurück und FALSE- bei Fehlern. Die GetLastError--Funktion kann aufgerufen werden, um einen spezifischeren Statuscode abzurufen. Die folgenden Statuscodes können zurückgegeben werden:

  • ERROR_INVALID_PARAMETER

    Keines der Benennungsparameter wurde angegeben.

  • ERROR_NOT_FOUND

    Es sind keine Anmeldeinformationen vorhanden, die den angegebenen Benennungsparametern entsprechen.

  • 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

    Ein ungültiges Kennzeichen wurde für den parameter Flags angegeben.

Bemerkungen

Diese Funktion gibt die spezifischsten Anmeldeinformationen zurück, die den Benennungsparametern entsprechen. Wenn beispielsweise anmeldeinformationen vorhanden sind, die dem Zielservernamen und den Anmeldeinformationen entsprechen, die dem Zieldomänennamen entsprechen, werden nur die serverspezifischen Anmeldeinformationen zurückgegeben. Dies sind die Anmeldeinformationen, die verwendet werden.

In der folgenden Liste wird die Reihenfolge (von den meisten spezifischen bis zu den geringsten) der zurückgegebenen Anmeldeinformationen angegeben, wenn mehr als eine Übereinstimmung besteht:

  • Der Zielname der Anmeldeinformationen ist das Formular <DfsRoot->\<DfsShare->und ist eine genaue Übereinstimmung für den TargetName-.
  • Eine genaue Übereinstimmung auf dem DnsServerName-.
  • Eine genaue Übereinstimmung auf der NetBIOSServerName.
  • Eine genaue Übereinstimmung für TargetName.
  • Eine Übereinstimmung der DnsServerName- mit einem Wildcardserver-Anmeldeinformation. Wenn mehrere Wildcardserveranmeldeinformationen übereinstimmen, werden die Anmeldeinformationen mit dem längeren TargetName verwendet. Das heißt, eine Anmeldeinformation für *.example.microsoft.com wird anstelle einer Anmeldeinformation für *.microsoft.com verwendet.
  • Eine genaue Übereinstimmung des DnsDomainName- mit einer Platzhalterdomänenanmeldeinformationen des Formulars <DnsDomainName>\*.
  • Eine genaue Übereinstimmung des NetBIOSDomainName- zu einer Platzhalterdomänen-Anmeldeinformationen des Formulars <NetBIOSDomainName>\*
  • Die Anmeldeinformationen mit dem Namen CRED_SESSION_WILDCARD_NAME.
  • Die Anmeldeinformationen mit dem Namen "*".
CredReadDomainCredentials unterscheidet sich von CredRead- darin, dass sie die Idiosyncies von Domänenanmeldeinformationen (CRED_TYPE_DOMAIN_PASSWORD oder CRED_TYPE_DOMAIN_CERTIFICATE) behandelt. Domänenanmeldeinformationen enthalten mehr als ein Zielmitglied.

Wenn der Wert des Type Member der CREDENTIAL- Struktur, die durch den Parameter Credentials angegeben wird, CRED_TYPE_DOMAIN_EXTENDEDist, muss ein Namespace im Zielnamen 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 parameter TargetInfo angegeben wird.

Anmerkung

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
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