Función CredPackAuthenticationBufferA (wincred.h)
La función CredPackAuthenticationBuffer convierte un nombre de usuario de cadena y una contraseña en un búfer de autenticación.
A partir de Windows 8 y Windows Server 2012, la función CredPackAuthenticationBuffer convierte una credencial de identidad en un búfer de autenticación, que es una estructura de SEC_WINNT_AUTH_IDENTITY_EX2 . Este búfer se puede pasar a LsaLogonUser, AcquireCredentialsHandle u otras interfaces del proveedor de identidades.
Sintaxis
CREDUIAPI BOOL CredPackAuthenticationBufferA(
[in] DWORD dwFlags,
[in] LPSTR pszUserName,
[in] LPSTR pszPassword,
[out] PBYTE pPackedCredentials,
[in, out] DWORD *pcbPackedCredentials
);
Parámetros
[in] dwFlags
Especifica cómo se debe empaquetar la credencial. Puede ser una combinación de las marcas siguientes.
Valor | Significado |
---|---|
|
Cifra la credencial para que solo los procesos puedan descifrarse en la sesión de inicio de sesión del autor de la llamada. |
|
Cifra la credencial en un búfer wow. |
|
Cifra la credencial en un búfer de CRED_GENERIC. |
|
Cifra la credencial de una identidad en línea en una estructura de SEC_WINNT_AUTH_IDENTITY_EX2 . Si no se establecen CRED_PACK_GENERIC_CREDENTIALS y CRED_PACK_ID_PROVIDER_CREDENTIALS, cifra las credenciales en un búfer de KERB_INTERACTIVE_LOGON.
Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008: Este valor no se admite. |
[in] pszUserName
Puntero a una cadena terminada en null que especifica el nombre de usuario que se va a convertir. Para los usuarios del dominio, la cadena debe tener el formato siguiente:
Nombrededominio\Nombre de usuario
En el caso de las identidades en línea, si la credencial es una contraseña de texto no cifrado, el formato de nombre de usuario es ProviderName UserName\. Si la credencial es una estructura SEC_WINNT_AUTH_IDENTITY_EX2 , el nombre de usuario es una cadena codificada que es la salida del parámetro UserName de una llamada de función a SspiEncodeAuthIdentityAsStrings.
En el caso de las credenciales de certificado o tarjeta inteligente , el nombre de usuario es una cadena codificada que es la salida de una llamada de función a CredMarshalCredential con la opción CertCredential.
Windows Server 2008 R2, Windows 7, Windows Server 2008 y Windows Vista: No se admiten identidades en línea.
[in] pszPassword
Puntero a una cadena terminada en null que especifica la contraseña que se va a convertir.
Para SEC_WINNT_AUTH_IDENTITY_EX2 credenciales, la contraseña es una cadena codificada que se encuentra en la salida ppszPackedCredentialsString de una llamada de función a SspiEncodeAuthIdentityAsStrings.
En el caso de las credenciales de tarjeta inteligente , este es el PIN de la tarjeta inteligente .
Windows Server 2008 R2, Windows 7, Windows Server 2008 y Windows Vista: No se admiten identidades en línea.
[out] pPackedCredentials
Puntero a una matriz de bytes que, en la salida, recibe el búfer de autenticación empaquetado. Este parámetro puede ser NULL para recibir el tamaño de búfer necesario en el parámetro pcbPackedCredentials .
[in, out] pcbPackedCredentials
Puntero a un valor DWORD que especifica el tamaño, en bytes, del búfer pPackedCredentials . En la salida, si el búfer no tiene un tamaño suficiente, especifica el tamaño necesario, en bytes, del búfer pPackedCredentials .
Valor devuelto
TRUE si la función se realiza correctamente; de lo contrario, FALSE.
Para obtener información de error extendida, llame a la función GetLastError , que puede devolver los siguientes códigos de error.
Código devuelto | Descripción |
---|---|
|
El búfer proporcionado por pPackedCredentials es demasiado pequeño. |
Comentarios
Nota
El encabezado wincred.h define CredPackAuthenticationBuffer 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
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 |