CredUnPackAuthenticationBufferW, fonction (wincred.h)
La fonction CredUnPackAuthenticationBuffer convertit une mémoire tampon d’authentification retournée par un appel à la fonction CredUIPromptForWindowsCredentials en nom d’utilisateur et mot de passe de chaîne.
Syntaxe
CREDUIAPI BOOL CredUnPackAuthenticationBufferW(
[in] DWORD dwFlags,
[in] PVOID pAuthBuffer,
[in] DWORD cbAuthBuffer,
[out] LPWSTR pszUserName,
[in, out] DWORD *pcchMaxUserName,
[out] LPWSTR pszDomainName,
[in, out] DWORD *pcchMaxDomainName,
[out] LPWSTR pszPassword,
[in, out] DWORD *pcchMaxPassword
);
Paramètres
[in] dwFlags
La définition de la valeur de ce paramètre sur CRED_PACK_PROTECTED_CREDENTIALS spécifie que la fonction tente de déchiffrer les informations d’identification dans la mémoire tampon d’authentification. Si les informations d’identification ne peuvent pas être déchiffrées, la fonction retourne FAUX, et un appel à la fonction GetLastError retourne la valeur ERROR_NOT_CAPABLE.
La façon dont le déchiffrement est effectué dépend du format de la mémoire tampon d’authentification.
Si la mémoire tampon d’authentification est une structure SEC_WINNT_AUTH_IDENTITY_EX2, la fonction peut déchiffrer la mémoire tampon si elle est chiffrée à l’aide de SspiEncryptAuthIdentityEx avec l’option SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON.
Si la mémoire tampon d’authentification est l’une des structures KERB_*_LOGON marshalées, la fonction déchiffre le mot de passe avant de le retourner dans la mémoire tampon pszPassword.
[in] pAuthBuffer
Pointeur vers la mémoire tampon d’authentification à convertir.
Cette mémoire tampon est généralement la sortie de la fonction CredUIPromptForWindowsCredentials ou CredPackAuthenticationBuffer. Il doit s’agir de l’un des types suivants :
- Structure SEC_WINNT_AUTH_IDENTITY_EX2 pour les informations d’identification d’identité. La fonction n’accepte pas d’autres structures SEC_WINNT_AUTH_IDENTITY.
- Structure KERB_INTERACTIVE_LOGON ou KERB_INTERACTIVE_UNLOCK_LOGON pour les informations d’identification de mot de passe.
- Structure KERB_CERTIFICATE_LOGON ou KERB_CERTIFICATE_UNLOCK_LOGON pour les informations d’identification du certificat de carte à puce.
- GENERIC_CRED pour les informations d’identification génériques.
[in] cbAuthBuffer
Taille, en octets, de la mémoire tampon pAuthBuffer.
[out] pszUserName
Pointeur vers une chaîne terminée par null qui reçoit le nom d’utilisateur.
Cette chaîne peut être des informations d’identification marshalées. Voir les remarques.
[in, out] pcchMaxUserName
Pointeur vers une valeur DWORD
[out] pszDomainName
Pointeur vers une chaîne terminée par null qui reçoit le nom du domaine de l’utilisateur.
[in, out] pcchMaxDomainName
Pointeur vers une valeur DWORD
[out] pszPassword
Pointeur vers une chaîne terminée par null qui reçoit le mot de passe.
[in, out] pcchMaxPassword
Pointeur vers une valeur
Cette chaîne peut être des informations d’identification marshalées. Voir les remarques.
Valeur de retour
TRUE si la fonction réussit ; sinon, FALSE.
Pour obtenir des informations d’erreur étendues, appelez la fonction GetLastError. Le tableau suivant présente les valeurs courantes de la fonction GetLastError.
Retourner le code/la valeur | Description |
---|---|
|
CRED_PACK_PROTECTED_CREDENTIALS a été passé comme valeur du paramètre dwFlags, mais cette fonction ne peut pas déchiffrer les informations d’identification, car le contexte de sécurité utilisé pour protéger le mot de passe est différent du contexte de sécurité de l’appelant. |
|
L’une des mémoires tampons de sortie, pszUserName, pszDomainName, ou pszPassword, était de taille insuffisante. |
|
La mémoire tampon d’authentification n’est pas d’un type pris en charge. |
Remarques
À compter de Windows 8 et Windows Server 2012, la mémoire tampon d’authentification peut être une structure SEC_WINNT_AUTH_IDENTITY_EX2, qui peut éventuellement être chiffrée à l’aide de la fonction SspiEncryptAuthIdentityEx avec l’option SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON. Ce format d’informations d’identification est retourné par un fournisseur d’informations d’identification d’un fournisseur d’identité à l’aide de la fonction
Note
L’en-tête wincred.h définit CredUnPackAuthenticationBuffer comme 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. Le mélange 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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista [applications de bureau uniquement] |
serveur minimum pris en charge | Windows Server 2008 [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | wincred.h |
bibliothèque | Credui.lib |
DLL | Credui.dll |