Fonction CredReadDomainCredentialsA (wincred.h)

La fonction CredReadDomainCredentials lit les informations d’identification de domaine à partir du jeu d’informations d’identification de l’utilisateur. Le jeu d’informations d’identification utilisé est celui associé à la session d’ouverture de session du jeton actuel. Le SID de l’utilisateur ne doit pas être désactivé pour le jeton.

Syntaxe

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

Paramètres

[in] TargetInfo

Informations cibles qui identifient le serveur cible. Au moins l’un des membres de nommage ne doit pas avoir la valeur NULL : NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainName ou DnsTreeName.

[in] Flags

Indicateurs contrôlant le fonctionnement de la fonction.

L’indicateur suivant est défini :

CRED_CACHE_TARGET_INFORMATION

Mettre en cache TargetInfo pour une lecture ultérieure à l’aide de CredGetTargetInfo.

[out] Count

Nombre d’informations d’identification retournées dans le tableau Informations d’identification .

[out] Credential

Pointeur vers un tableau de pointeurs vers les informations d’identification. Les informations d’identification existantes les plus spécifiques correspondant à TargetInfo sont retournées. Si des informations d’identification de différents types (par exemple, des informations d’identification CRED_TYPE_DOMAIN_PASSWORD et CRED_TYPE_DOMAIN_CERTIFICATE) existent, un de chaque type est retourné. Si une connexion devait être établie à la cible nommée, ces informations d’identification les plus spécifiques seraient utilisées.

Uniquement les types d’informations d’identification spécifiés par TargetInfo. Le tableau CredTypes est retourné. Le tableau d’informations d’identification retourné est trié dans le même ordre que TargetInfo. Tableau CredTypes. Autrement dit, les packages d’authentification spécifient un type d’informations d’identification préféré en le spécifiant précédemment dans TargetInfo. Tableau CredTypes. Si TargetInfo. CredTypeCount est égal à zéro, le tableau Credentials est retourné dans l’ordre trié suivant :

  • CRED_TYPE_DOMAIN_CERTIFICATE
  • CRED_TYPE_DOMAIN_PASSWORD

La mémoire tampon retournée est un seul bloc alloué. Tous les pointeurs contenus dans la mémoire tampon sont des pointeurs vers des emplacements dans ce bloc alloué unique. La mémoire tampon retournée unique doit être libérée en appelant CredFree.

Valeur retournée

La fonction retourne TRUE en cas de réussite et FALSE en cas d’échec. La fonction GetLastError peut être appelée pour obtenir un code status plus spécifique. Les codes status suivants peuvent être retournés :

  • ERROR_INVALID_PARAMETER

    Aucun des paramètres de nommage n’a été spécifié.

  • ERROR_NOT_FOUND

    Il n’existe aucune information d’identification correspondant aux paramètres de nommage spécifiés.

  • ERROR_NO_SUCH_LOGON_SESSION

    La session d’ouverture de session n’existe pas ou aucun jeu d’informations d’identification n’est associé à cette session d’ouverture de session. Les sessions d’ouverture de session réseau n’ont pas d’ensemble d’informations d’identification associées.

  • ERROR_INVALID_FLAGS

    Un indicateur non valide a été spécifié pour le paramètre Flags .

Remarques

Cette fonction retourne les informations d’identification les plus spécifiques correspondant aux paramètres de nommage. Par instance, s’il existe des informations d’identification qui correspondent au nom du serveur cible et des informations d’identification qui correspondent au nom de domaine cible, seules les informations d’identification spécifiques au serveur sont retournées. Il s’agit des informations d’identification qui seraient utilisées.

La liste suivante spécifie l’ordre (du plus spécifique au moins spécifique) des informations d’identification retournées si plusieurs correspondances :

  • Le nom de la cible d’informations d’identification est de la forme <DfsRoot>\<DfsShare> et correspond exactement à TargetName.
  • Correspondance exacte sur dnsServerName.
  • Correspondance exacte sur netBIOSServerName.
  • Correspondance exacte sur TargetName.
  • Correspondance de DnsServerName avec les informations d’identification d’un serveur générique. Si plusieurs informations d’identification de serveur générique correspondent, les informations d’identification avec le Nom TargetName plus long sont utilisées. Autrement dit, des informations d’identification pour *.example.microsoft.com sont utilisées au lieu d’informations d’identification pour *.microsoft.com.
  • Correspondance exacte de DnsDomainName avec les informations d’identification de domaine génériques sous la forme <DnsDomainName>\*.
  • Correspondance exacte de NetBIOSDomainName à un nom de domaine générique au format <NetBIOSDomainName>\*
  • Informations d’identification nommées CRED_SESSION_WILDCARD_NAME.
  • Informations d’identification nommées « * ».
CredReadDomainCredentials diffère de CredRead en ce qu’il gère les idiosyncrasies des informations d’identification de domaine (CRED_TYPE_DOMAIN_PASSWORD ou CRED_TYPE_DOMAIN_CERTIFICATE). Les informations d’identification de domaine contiennent plusieurs membres cibles.

Si la valeur du membre Type de la structure CREDENTIAL spécifiée par le paramètre Credentials est CRED_TYPE_DOMAIN_EXTENDED, un espace de noms doit être spécifié dans le nom cible. Cette fonction ne peut retourner qu’une seule information d’identification du type spécifié.

Cette fonction peut retourner plusieurs informations d’identification de ce type, mais CRED_TYPE_DOMAIN_EXTENDED ne peut pas être mélangée avec d’autres types dans le membre CredTypes de la structure CREDENTIAL_TARGET_INFORMATION spécifiée par le paramètre TargetInfo .

Notes

L’en-tête wincred.h définit CredReadDomainCredentials comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wincred.h
Bibliothèque Advapi32.lib
DLL Advapi32.dll