Partager via


Fonction CredReadDomainCredentialsW (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 CredReadDomainCredentialsW(
  [in]  PCREDENTIAL_TARGET_INFORMATIONW TargetInfo,
  [in]  DWORD                           Flags,
  [out] DWORD                           *Count,
  [out] PCREDENTIALW                    **Credential
);

Paramètres

[in] TargetInfo

Informations de cible qui identifient le serveur cible. Au moins l’un des membres de nommage ne doit pas être 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

Mettez en cache l’objet 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, CRED_TYPE_DOMAIN_PASSWORD et CRED_TYPE_DOMAIN_CERTIFICATE informations d’identification) existent, une de chaque type est retournée. Si une connexion devait être établie à la cible nommée, ces informations d’identification les plus spécifiques seraient utilisées.

Seuls les types d’informations d’identification spécifiés par TargetInfo. Le tableau CredTypes est retourné. Le tableau Credentials 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 au sein de 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

    Aucune information d’identification ne correspond aux paramètres d’affectation de noms 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 correspondent :

  • Le nom de la cible d’informations d’identification se présente sous 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 du serveur générique. Si plusieurs informations d’identification de serveur générique correspondent, les informations d’identification avec la valeur TargetName plus longue sont utilisées. Autrement dit, des informations d’identification pour *.example.microsoft.com sont utilisées à la place d’informations d’identification pour *.microsoft.com.
  • Correspondance exacte du DnsDomainName à une information d’identification de domaine générique sous la forme <DnsDomainName>\*.
  • Correspondance exacte de NetBIOSDomainName à une information d’identification de domaine générique sous la forme <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é 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 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. La combinaison 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

   
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