Share via


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
CREDUIWIN_GENERIC
0x1
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.

CREDUIWIN_CHECKBOX
0x2
La zone Enregistrer case activée s’affiche dans la boîte de dialogue .
CREDUIWIN_AUTHPACKAGE_ONLY
0x10
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.

CREDUIWIN_IN_CRED_ONLY
0x20
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.

CREDUIWIN_ENUMERATE_ADMINS
0x100
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.
CREDUIWIN_ENUMERATE_CURRENT_USER
0x200
Seules les informations d’identification entrantes pour le package d’authentification spécifié par le paramètre pulAuthPackage doivent être énumérées.
CREDUIWIN_SECURE_PROMPT
0x1000
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.

CREDUIWIN_PREPROMPTING
0x2000
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.

0x40000
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.

CREDUIWIN_PACK_32_WOW
0x10000000
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.
0x80000000
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