CredPackAuthenticationBufferA, fonction (wincred.h)
La fonction CredPackAuthenticationBuffer convertit un nom d’utilisateur et un mot de passe de chaîne en mémoire tampon d’authentification.
À compter de Windows 8 et Windows Server 2012, la fonction CredPackAuthenticationBuffer convertit les informations d’identification d’identité en mémoire tampon d’authentification, qui est une structure SEC_WINNT_AUTH_IDENTITY_EX2 . Cette mémoire tampon peut être passée à LsaLogonUser, AcquireCredentialsHandle ou à d’autres interfaces de fournisseur d’identité.
Syntaxe
CREDUIAPI BOOL CredPackAuthenticationBufferA(
[in] DWORD dwFlags,
[in] LPSTR pszUserName,
[in] LPSTR pszPassword,
[out] PBYTE pPackedCredentials,
[in, out] DWORD *pcbPackedCredentials
);
Paramètres
[in] dwFlags
Spécifie la façon dont les informations d’identification doivent être empaquetées. Il peut s’agir d’une combinaison des indicateurs suivants.
Valeur | Signification |
---|---|
|
Chiffre les informations d’identification afin qu’elles puissent être déchiffrées uniquement par les processus dans la session d’ouverture de session de l’appelant. |
|
Chiffre les informations d’identification dans une mémoire tampon WOW. |
|
Chiffre les informations d’identification dans une mémoire tampon CRED_GENERIC. |
|
Chiffre les informations d’identification d’une identité en ligne dans une structure de SEC_WINNT_AUTH_IDENTITY_EX2 . Si CRED_PACK_GENERIC_CREDENTIALS et CRED_PACK_ID_PROVIDER_CREDENTIALS ne sont pas définis, chiffre les informations d’identification dans une mémoire tampon KERB_INTERACTIVE_LOGON.
Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008 : Cette valeur n’est pas prise en charge. |
[in] pszUserName
Pointeur vers une chaîne terminée par null qui spécifie le nom d’utilisateur à convertir. Pour les utilisateurs du domaine, la chaîne doit être au format suivant :
Domainname\Nom d'utilisateur
Pour les identités en ligne, si les informations d’identification sont un mot de passe en texte clair, le format de nom d’utilisateur est ProviderName\UserName. Si les informations d’identification sont une structure SEC_WINNT_AUTH_IDENTITY_EX2 , le nom d’utilisateur est une chaîne encodée qui est la sortie du paramètre UserName d’un appel de fonction à SspiEncodeAuthIdentityAsStrings.
Pour les informations d’identification de certificat ou de carte intelligentes, le nom d’utilisateur est une chaîne encodée qui est la sortie d’un appel de fonction à CredMarshalCredential avec l’option CertCredential.
Windows Server 2008 R2, Windows 7, Windows Server 2008 et Windows Vista : Les identités en ligne ne sont pas prises en charge.
[in] pszPassword
Pointeur vers une chaîne terminée par null qui spécifie le mot de passe à convertir.
Pour SEC_WINNT_AUTH_IDENTITY_EX2 informations d’identification, le mot de passe est une chaîne encodée qui se trouve dans la sortie ppszPackedCredentialsString d’un appel de fonction à SspiEncodeAuthIdentityAsStrings.
Pour les informations d’identification de carte intelligentes, il s’agit du code confidentiel carte intelligent.
Windows Server 2008 R2, Windows 7, Windows Server 2008 et Windows Vista : Les identités en ligne ne sont pas prises en charge.
[out] pPackedCredentials
Pointeur vers un tableau d’octets qui, à la sortie, reçoit la mémoire tampon d’authentification packée. Ce paramètre peut être NULL pour recevoir la taille de mémoire tampon requise dans le paramètre pcbPackedCredentials .
[in, out] pcbPackedCredentials
Pointeur vers une valeur DWORD qui spécifie la taille, en octets, de la mémoire tampon pPackedCredentials . En sortie, si la mémoire tampon n’est pas de taille suffisante, spécifie la taille requise, en octets, de la mémoire tampon pPackedCredentials .
Valeur retournée
TRUE si la fonction réussit ; sinon, FALSE.
Pour obtenir des informations d’erreur étendues, appelez la fonction GetLastError , qui peut retourner les codes d’erreur suivants.
Code de retour | Description |
---|---|
|
La mémoire tampon fournie par pPackedCredentials est trop petite. |
Remarques
Notes
L’en-tête wincred.h définit CredPackAuthenticationBuffer en tant qu’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. La combinaison 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.
Configuration requise
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wincred.h |
Bibliothèque | Credui.lib |
DLL | Credui.dll |