Función CredUnPackAuthenticationBufferA (wincred.h)
La función credUnPackAuthenticationBuffer
Sintaxis
CREDUIAPI BOOL CredUnPackAuthenticationBufferA(
[in] DWORD dwFlags,
[in] PVOID pAuthBuffer,
[in] DWORD cbAuthBuffer,
[out] LPSTR pszUserName,
[in, out] DWORD *pcchlMaxUserName,
[out] LPSTR pszDomainName,
[in, out] DWORD *pcchMaxDomainName,
[out] LPSTR pszPassword,
[in, out] DWORD *pcchMaxPassword
);
Parámetros
[in] dwFlags
Al establecer el valor de este parámetro en CRED_PACK_PROTECTED_CREDENTIALS se especifica que la función intenta descifrar las credenciales en el búfer de autenticación. Si no se puede descifrar la credencial, la función devuelve
La forma en que se realiza el descifrado depende del formato del búfer de autenticación.
Si el búfer de autenticación es una estructura de SEC_WINNT_AUTH_IDENTITY_EX2, la función puede descifrar el búfer si se cifra mediante SspiEncryptAuthIdentityEx con la opción SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON.
Si el búfer de autenticación es una de las estructuras de KERB_*_LOGON serializadas, la función descifra la contraseña antes de devolverla en el búfer de pszPassword.
[in] pAuthBuffer
Puntero al búfer de autenticación que se va a convertir.
Este búfer suele ser la salida de la función CredUIPromptForWindowsCredential s o CredPackAuthenticationBuffer. Debe ser uno de los siguientes tipos:
- Estructura SEC_WINNT_AUTH_IDENTITY_EX2 para las credenciales de identidad. La función no acepta otras estructuras de SEC_WINNT_AUTH_IDENTITY.
- Estructura KERB_INTERACTIVE_LOGON o KERB_INTERACTIVE_UNLOCK_LOGON para las credenciales de contraseña.
- Estructura KERB_CERTIFICATE_LOGON o KERB_CERTIFICATE_UNLOCK_LOGON para credenciales de certificado de tarjeta inteligente.
- GENERIC_CRED para credenciales genéricas.
[in] cbAuthBuffer
Tamaño, en bytes, del búfer de pAuthBuffer.
[out] pszUserName
Puntero a una cadena terminada en null que recibe el nombre de usuario.
Esta cadena puede ser una credencial serializado. Vea comentarios.
[in, out] pcchlMaxUserName
Puntero a un valor de DWORD que especifica el tamaño, en caracteres, del búfer de pszUserName. En la salida, si el búfer no tiene un tamaño suficiente, especifica el tamaño necesario, en caracteres, del búfer de pszUserName. El tamaño incluye el carácter nulo de terminación.
[out] pszDomainName
Puntero a una cadena terminada en null que recibe el nombre del dominio del usuario.
[in, out] pcchMaxDomainName
Puntero a un valor DWORD que especifica el tamaño, en caracteres, del búfer de pszDomainName. En la salida, si el búfer no tiene un tamaño suficiente, especifica el tamaño necesario, en caracteres, del pszDomainName búfer. El tamaño incluye el carácter nulo de terminación. El tamaño necesario puede ser cero si no hay ningún nombre de dominio.
[out] pszPassword
Puntero a una cadena terminada en null que recibe la contraseña.
[in, out] pcchMaxPassword
Puntero a un valor de DWORD que especifica el tamaño, en caracteres, del búfer de pszPassword. En la salida, si el búfer no tiene un tamaño suficiente, especifica el tamaño necesario, en caracteres, del pszPassword búfer. El tamaño incluye el carácter nulo de terminación.
Esta cadena puede ser una credencial serializado. Vea comentarios.
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
Código y valor devueltos | Descripción |
---|---|
|
CRED_PACK_PROTECTED_CREDENTIALS se pasó como el valor del parámetro dwFlags, pero esta función no puede descifrar la credencial porque el contexto de seguridad usado para proteger la contraseña es diferente del contexto de seguridad del autor de la llamada. |
|
Uno de los búferes de salida, pszUserName, pszDomainName, o pszPassword, era de tamaño insuficiente. |
|
El búfer de autenticación no es de un tipo admitido. |
Observaciones
A partir de Windows 8 y Windows Server 2012, el búfer de autenticación puede ser una estructura de SEC_WINNT_AUTH_IDENTITY_EX2, que se puede cifrar opcionalmente mediante la función SspiEncryptAuthIdentityEx con la opción SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON. Este formato de credencial lo devuelve un proveedor de credenciales de un proveedor de identidades mediante la función CredUIPromptForWindowsCredentials o SspiPromptForCredentials. Esta estructura también se puede construir mediante la función
Nota
El encabezado wincred.h define CredUnPackAuthenticationBuffer 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 |