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 « * ».
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 |