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 CREDUI_INFO que contiene información para personalizar la apariencia del cuadro de diálogo que muestra esta función.
Si el miembro hwndParent
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. El mensaje de error correspondiente tiene el formato 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 pvInAuthBuffer búfer. 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 credenciales para el paquete de autenticación especificado.
Para obtener el valor adecuado que se va a usar para este parámetro en la entrada, llame al 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 de la ppvOutAuthBuffer búfer.
[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 de 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 llamando a la función de SecureZeroMemory
[out] pulOutAuthBufferSize
Tamaño, en bytes, del búfer de ppvOutAuthBuffer.
[in, out, optional] pfSave
Puntero a un valor booleano que, en la entrada, especifica si 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 deO 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 |
|
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 deben enumerar solo los administradores. Este valor está pensado solo 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 del 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. |
|
El cuadro de diálogo de credenciales se invoca mediante la función SspiPromptForCredentials y se solicita al cliente antes de un protocolo de enlace anterior. Si SSPIPFC_NO_CHECKBOX se pasa en el parámetro 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 es compatible a partir de Windows 10, versión 1607. |
|
El proveedor de credenciales debe alinear el BLOB de credenciales al 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. |
|
Las credenciales de Windows Hello 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 es compatible 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.
Observaciones
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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Vista [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows Server 2008 [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
wincred.h |
biblioteca de |
Credui.lib |
DLL de |
Credui.dll |