CredUIPromptForWindowsCredentialsW, 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 CredUIPromptForWindowsCredentialsW(
[in, optional] PCREDUI_INFOW 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
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
[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
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 |
---|---|
|
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 case Enregistrer 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 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é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. |
|
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. |
|
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 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 antérieure. Si SSPIPFC_NO_CHECKBOX est passée dans le paramètre pvInAuthBuffer 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. 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. |
|
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. |
|
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 |