CredUIPromptForWindowsCredentialsA, fonction (wincred.h)
La fonction CredUIPromptForWindowsCredentials crée et affiche une boîte de dialogue configurable qui permet aux utilisateurs de fournir des informations d’identification à l’aide de n’importe quel fournisseur d’informations d’identification installé sur l’ordinateur local.
Syntaxe
CREDUIAPI DWORD CredUIPromptForWindowsCredentialsA(
[in, optional] PCREDUI_INFOA pUiInfo,
[in] DWORD dwAuthError,
[in, out] ULONG *pulAuthPackage,
[in, optional] LPCVOID pvInAuthBuffer,
[in] ULONG ulInAuthBufferSize,
[out] LPVOID *ppvOutAuthBuffer,
[out] ULONG *pulOutAuthBufferSize,
[in, out, optional] BOOL *pfSave,
[in] DWORD dwFlags
);
Paramètres
[in, optional] pUiInfo
Pointeur vers une structure de CREDUI_INFO qui contient des informations permettant de personnaliser l’apparence de la boîte de dialogue affichée par cette fonction.
Si le membre hwndParent de la structure CREDUI_INFO n’est pas NULL, cette fonction affiche une boîte de dialogue modale centrée sur la fenêtre parente.
Si le membre hwndParent de la structure CREDUI_INFO a la valeur NULL, la fonction affiche une boîte de dialogue centrée sur l’écran.
Cette fonction ignore le membre hbmBanner de la structure CREDUI_INFO .
[in] dwAuthError
Code d’erreur Windows, défini dans Winerror.h, qui s’affiche dans la boîte de dialogue. Si les informations d’identification précédemment collectées n’étaient pas valides, l’appelant utilise ce paramètre pour passer le message d’erreur de l’API qui a collecté les informations d’identification (par exemple, Winlogon) à cette fonction. Le message d’erreur correspondant est mis en forme et affiché dans la boîte de dialogue. Définissez la valeur de ce paramètre sur zéro pour afficher aucun message d’erreur.
[in, out] pulAuthPackage
Lors de l’entrée, la valeur de ce paramètre est utilisée pour spécifier le package d’authentification pour lequel les informations d’identification dans la mémoire tampon pvInAuthBuffer sont sérialisées. Si la valeur de pvInAuthBuffer est NULL et que l’indicateur CREDUIWIN_AUTHPACKAGE_ONLY est défini dans le paramètre dwFlags , seuls les fournisseurs d’informations d’identification capables de sérialiser les informations d’identification pour le package d’authentification spécifié doivent être énumérés.
Pour obtenir la valeur appropriée à utiliser pour ce paramètre lors de l’entrée, appelez la fonction LsaLookupAuthenticationPackage et utilisez la valeur du paramètre AuthenticationPackage de cette fonction.
Lors de la sortie, ce paramètre spécifie le package d’authentification pour lequel les informations d’identification dans la mémoire tampon ppvOutAuthBuffer sont sérialisées.
[in, optional] pvInAuthBuffer
Pointeur vers un objet BLOB d’informations d’identification utilisé pour remplir les champs d’informations d’identification dans la boîte de dialogue. Définissez la valeur de ce paramètre sur NULL pour laisser les champs d’informations d’identification vides.
[in] ulInAuthBufferSize
Taille, en octets, de la mémoire tampon pvInAuthBuffer .
[out] ppvOutAuthBuffer
Adresse d’un pointeur qui, lors de la sortie, spécifie l’objet BLOB d’informations d’identification. Pour les informations d’identification Kerberos, NTLM ou Negotiate, appelez la fonction CredUnPackAuthenticationBuffer pour convertir cet objet BLOB en représentations sous forme de chaîne des informations d’identification.
Lorsque vous avez terminé d’utiliser l’objet BLOB d’informations d’identification, effacez-le de la mémoire en appelant la fonction SecureZeroMemory et libérez-la en appelant la fonction CoTaskMemFree .
[out] pulOutAuthBufferSize
Taille, en octets, de la mémoire tampon ppvOutAuthBuffer .
[in, out, optional] pfSave
Pointeur vers une valeur booléenne qui, lors de l’entrée, spécifie si la zone Enregistrer case activée est sélectionnée dans la boîte de dialogue affichée par cette fonction. Lors de la sortie, la valeur de ce paramètre spécifie si la zone Enregistrer case activée a été sélectionnée lorsque l’utilisateur clique sur le bouton Envoyer dans la boîte de dialogue. Définissez ce paramètre sur NULL pour ignorer la zone Enregistrer case activée.
Ce paramètre est ignoré si l’indicateur CREDUIWIN_CHECKBOX n’est pas défini dans le paramètre dwFlags .
[in] dwFlags
Valeur qui spécifie le comportement de cette fonction. Cette valeur peut être une combinaison de bits OU d’une ou plusieurs des valeurs suivantes.
Valeur | Signification |
---|---|
|
L’appelant demande que le fournisseur d’informations d’identification retourne le nom d’utilisateur et le mot de passe en texte brut.
Cette valeur ne peut pas être combinée avec SECURE_PROMPT. |
|
La zone Enregistrer case activée s’affiche dans la boîte de dialogue . |
|
Seuls les fournisseurs d’informations d’identification qui prennent en charge le package d’authentification spécifié par le paramètre pulAuthPackage doivent être énumérés.
Cette valeur ne peut pas être combinée avec CREDUIWIN_IN_CRED_ONLY. |
|
Seules les informations d’identification spécifiées par le paramètre pvInAuthBuffer pour le package d’authentification spécifié par le paramètre pulAuthPackage doivent être énumérées.
Si cet indicateur est défini et que le paramètre pvInAuthBuffer a la valeur NULL, la fonction échoue. Cette valeur ne peut pas être combinée avec CREDUIWIN_AUTHPACKAGE_ONLY. |
|
Les fournisseurs d’informations d’identification doivent énumérer uniquement les administrateurs. Cette valeur est destinée au contrôle de compte d’utilisateur (UAC) uniquement. Nous recommandons aux appelants externes de ne pas définir cet indicateur. |
|
Seules les informations d’identification entrantes pour le package d’authentification spécifié par le paramètre pulAuthPackage doivent être énumérées. |
|
La boîte de dialogue des informations d’identification doit s’afficher sur le bureau sécurisé. Cette valeur ne peut pas être combinée avec CREDUIWIN_GENERIC.
Windows Vista : Cette valeur est prise en charge à partir de Windows Vista avec SP1. |
|
La boîte de dialogue d’informations d’identification est appelée par la fonction SspiPromptForCredentials , et le client est invité avant une négociation précédente. Si SSPIPFC_NO_CHECKBOX est passé dans le paramètre pvInAuthBuffer, le fournisseur d’informations d’identification ne doit pas afficher la zone case activée.
Windows Vista : Cette valeur est prise en charge à partir de Windows Vista avec SP1. |
|
Le fournisseur d’informations d’identification ne packira pas le nom de l’autorité AAD. Cela s’applique uniquement aux appareils joints à Azure AD.
Windows 10, version 1607 : cette valeur est prise en charge à partir de Windows 10, version 1607. |
|
Le fournisseur d’informations d’identification doit aligner l’objet BLOB d’informations d’identification pointé par le paramètre ppvOutAuthBuffer sur une limite 32 bits, même si le fournisseur s’exécute sur un système 64 bits. |
|
Windows Hello informations d’identification seront empaquetées dans une mémoire tampon d’authentification carte intelligente. Cela s’applique uniquement aux fournisseurs d’informations d’identification du visage, des empreintes digitales et du code confidentiel.
Windows 10, version 1809 : cette valeur est prise en charge à partir de Windows 10, version 1809. |
Valeur retournée
Si la fonction réussit, la fonction retourne ERROR_SUCCESS. Si la fonction est annulée par l’utilisateur, elle retourne ERROR_CANCELLED. Toute autre valeur de retour indique que le chargement de la fonction a échoué.
Remarques
Cette fonction n’enregistre pas les informations d’identification.
Les applications qui utilisent SSPI pour authentifier les utilisateurs ne doivent pas appeler cette fonction. Au lieu de cela, appelez SspiPromptForCredentials.
Notes
L’en-tête wincred.h définit CredUIPromptForWindowsCredentials en tant qu’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
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wincred.h |
Bibliothèque | Credui.lib |
DLL | Credui.dll |