Partager 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 CREDUI_INFO qui contient des informations pour 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 est 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 transmettre 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 le pvInAuthBuffer tampon 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 AuthenticationPackage paramètre de cette fonction.

En sortie, ce paramètre spécifie le package d’authentification pour lequel les informations d’identification dans le ppvOutAuthBuffer tampon 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

L’adresse d’un pointeur qui, en 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 ce blob en représentations sous forme de chaînes des informations d’identification.

Une fois que 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 tampon.

[in, out, optional] pfSave

Pointeur vers une valeur booléenne qui, lors de l’entrée, spécifie si la case Enregistrer est cochée dans la boîte de dialogue affichée par cette fonction. En sortie, la valeur de ce paramètre spécifie si la case Enregistrer a été coché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 case Enregistrer.

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 combinaisonOU 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 case Enregistrer 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és.

Si cet indicateur est défini et que le paramètre pvInAuthBuffer est 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 à des fins de contrôle de compte d’utilisateur (UAC) uniquement. Nous vous recommandons que les appelants externes ne définissent pas 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 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 antérieure. Si SSPIPFC_NO_CHECKBOX est passée dans le paramètre pvInAuthBuffer , le fournisseur d’informations d’identification ne doit pas afficher la case à cocher.

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. Cette opération est appliquée 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 à une limite 32 bits, même si le fournisseur s’exécute sur un système 64 bits.
0x80000000
Les informations d’identification Windows Hello sont empaquetées dans une mémoire tampon d’authentification de carte à puce. Cela s’applique uniquement aux fournisseurs d’informations d’identification de visage, d’empreinte digitale et de code confidentiel.

Windows 10, version 1809 : Cette valeur est prise en charge à partir de Windows 10, version 1809.

Valeur de retour

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 la fonction n’a pas pu être chargée.

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.

Note

L’en-tête wincred.h définit CredUIPromptForWindowsCredentials 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. 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2008 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête wincred.h
bibliothèque Credui.lib
DLL Credui.dll