Función CredUIPromptForWindowsCredentialsA (wincred.h)
La función CredUIPromptForWindowsCredentials crea y muestra un cuadro de diálogo configurable que permite a los usuarios proporcionar información de credenciales mediante cualquier proveedor de credenciales instalado en el equipo local.
Sintaxis
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
);
Parámetros
[in, optional] pUiInfo
Puntero a una estructura de CREDUI_INFO que contiene información para personalizar la apariencia del cuadro de diálogo que muestra esta función.
Si el miembro hwndParent de la estructura CREDUI_INFO no es NULL, esta función muestra un cuadro de diálogo modal centrado en la ventana primaria.
Si el miembro hwndParent de la estructura CREDUI_INFO es NULL, la función muestra un cuadro de diálogo centrado en la pantalla.
Esta función omite el miembro hbmBanner de la estructura CREDUI_INFO .
[in] dwAuthError
Código de error de Windows, definido en Winerror.h, que se muestra en el cuadro de diálogo. Si las credenciales recopiladas anteriormente no eran válidas, el autor de la llamada usa este parámetro para pasar el mensaje de error de la API que recopiló las credenciales (por ejemplo, Winlogon) a esta función. Se da formato al mensaje de error correspondiente y se muestra en el cuadro de diálogo. Establezca el valor de este parámetro en cero para mostrar ningún mensaje de error.
[in, out] pulAuthPackage
En la entrada, el valor de este parámetro se usa para especificar el paquete de autenticación para el que se serializan las credenciales del búfer pvInAuthBuffer . Si el valor de pvInAuthBuffer es NULL y la marca de CREDUIWIN_AUTHPACKAGE_ONLY se establece en el parámetro dwFlags , solo se enumerarán los proveedores de credenciales capaces de serializar las credenciales para el paquete de autenticación especificado.
Para obtener el valor adecuado que se usará para este parámetro en la entrada, llame a la función LsaLookupAuthenticationPackage y use el valor del parámetro AuthenticationPackage de esa función.
En la salida, este parámetro especifica el paquete de autenticación para el que se serializan las credenciales del búfer ppvOutAuthBuffer .
[in, optional] pvInAuthBuffer
Puntero a un BLOB de credenciales que se usa para rellenar los campos de credenciales en el cuadro de diálogo. Establezca el valor de este parámetro en NULL para dejar vacíos los campos de credenciales.
[in] ulInAuthBufferSize
Tamaño, en bytes, del búfer pvInAuthBuffer .
[out] ppvOutAuthBuffer
La dirección de un puntero que, en la salida, especifica la credencial BLOB. Para las credenciales Kerberos, NTLM o Negotiate, llame a la función CredUnPackAuthenticationBuffer para convertir este BLOB en representaciones de cadena de las credenciales.
Cuando haya terminado de usar el BLOB de credenciales, desactive la memoria mediante una llamada a la función SecureZeroMemory y liberela llamando a la función CoTaskMemFree .
[out] pulOutAuthBufferSize
Tamaño, en bytes, del búfer ppvOutAuthBuffer .
[in, out, optional] pfSave
Un puntero a un valor booleano que, en la entrada, especifica si la casilla Guardar está seleccionada en el cuadro de diálogo que muestra esta función. En la salida, el valor de este parámetro especifica si la casilla Guardar se ha seleccionado cuando el usuario hace clic en el botón Enviar del cuadro de diálogo. Establezca este parámetro en NULL para omitir la casilla Guardar .
Este parámetro se omite si la marca CREDUIWIN_CHECKBOX no está establecida en el parámetro dwFlags .
[in] dwFlags
Valor que especifica el comportamiento de esta función. Este valor puede ser una combinación OR bit a bit de uno o varios de los valores siguientes.
Valor | Significado |
---|---|
|
El autor de la llamada solicita que el proveedor de credenciales devuelva el nombre de usuario y la contraseña en texto sin formato.
Este valor no se puede combinar con SECURE_PROMPT. |
|
La casilla Guardar se muestra en el cuadro de diálogo. |
|
Solo se deben enumerar los proveedores de credenciales que admiten el paquete de autenticación especificado por el parámetro pulAuthPackage .
Este valor no se puede combinar con CREDUIWIN_IN_CRED_ONLY. |
|
Solo se deben enumerar las credenciales especificadas por el parámetro pvInAuthBuffer para el paquete de autenticación especificado por el parámetro pulAuthPackage .
Si se establece esta marca y el parámetro pvInAuthBuffer es NULL, se produce un error en la función. Este valor no se puede combinar con CREDUIWIN_AUTHPACKAGE_ONLY. |
|
Los proveedores de credenciales solo deben enumerar los administradores. Este valor está pensado únicamente para fines de Control de cuentas de usuario (UAC). Se recomienda que los autores de llamadas externos no establezcan esta marca. |
|
Solo se deben enumerar las credenciales entrantes para el paquete de autenticación especificado por el parámetro pulAuthPackage . |
|
El cuadro de diálogo de credenciales debe mostrarse en el escritorio seguro. Este valor no se puede combinar con CREDUIWIN_GENERIC.
Windows Vista: Este valor se admite a partir de Windows Vista con SP1. |
|
La función SspiPromptForCredentials invoca el cuadro de diálogo de credenciales y se solicita al cliente antes de un protocolo de enlace anterior. Si SSPIPFC_NO_CHECKBOX se pasa en el parámetro pvInAuthBuffer , el proveedor de credenciales no debe mostrar la casilla.
Windows Vista: Este valor se admite a partir de Windows Vista con SP1. |
|
El proveedor de credenciales no empaquetará el nombre de la entidad de AAD. Esto solo se aplica a dispositivos unidos a Azure AD.
Windows 10, versión 1607: este valor se admite a partir de Windows 10, versión 1607. |
|
El proveedor de credenciales debe alinear la credencial BLOB a la que apunta el parámetro ppvOutAuthBuffer a un límite de 32 bits, incluso si el proveedor se ejecuta en un sistema de 64 bits. |
|
Windows Hello credenciales se empaquetarán en un búfer de autenticación de tarjeta inteligente. Esto solo se aplica a los proveedores de credenciales face, fingerprint y PIN.
Windows 10, versión 1809: este valor se admite a partir de Windows 10, versión 1809. |
Valor devuelto
Si la función se ejecuta correctamente, la función devuelve ERROR_SUCCESS. Si el usuario cancela la función, devuelve ERROR_CANCELLED. Cualquier otro valor devuelto indica que la función no se pudo cargar.
Comentarios
Esta función no guarda las credenciales.
Las aplicaciones que usan SSPI para autenticar a los usuarios no deben llamar a esta función. En su lugar, llame a SspiPromptForCredentials.
Nota
El encabezado wincred.h define CredUIPromptForWindowsCredentials como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | wincred.h |
Library | Credui.lib |
Archivo DLL | Credui.dll |