Funzione CredPackAuthenticationBufferW (wincred.h)

La funzione CredPackAuthenticationBuffer converte un nome utente e una password stringa in un buffer di autenticazione.

A partire da Windows 8 e Windows Server 2012, la funzione CredPackAuthenticationBuffer converte una credenziale di identità in un buffer di autenticazione, ovvero una struttura SEC_WINNT_AUTH_IDENTITY_EX2 . Questo buffer può essere passato a LsaLogonUser, AcquireCredentialsHandle o ad altre interfacce del provider di identità.

Sintassi

CREDUIAPI BOOL CredPackAuthenticationBufferW(
  [in]      DWORD  dwFlags,
  [in]      LPWSTR pszUserName,
  [in]      LPWSTR pszPassword,
  [out]     PBYTE  pPackedCredentials,
  [in, out] DWORD  *pcbPackedCredentials
);

Parametri

[in] dwFlags

Specifica la modalità di creazione del pacchetto delle credenziali. Può trattarsi di una combinazione dei flag seguenti.

Valore Significato
CRED_PACK_PROTECTED_CREDENTIALS
Crittografa le credenziali in modo che possa essere decrittografata solo dai processi nella sessione di accesso del chiamante.
CRED_PACK_WOW_BUFFER
Crittografa le credenziali in un buffer WOW.
CRED_PACK_GENERIC_CREDENTIALS
Crittografa le credenziali in un buffer CRED_GENERIC.
CRED_PACK_ID_PROVIDER_CREDENTIALS
Crittografa le credenziali di un'identità online in una struttura SEC_WINNT_AUTH_IDENTITY_EX2 . Se CRED_PACK_GENERIC_CREDENTIALS e CRED_PACK_ID_PROVIDER_CREDENTIALS non sono impostati, crittografa le credenziali in un buffer KERB_INTERACTIVE_LOGON.

Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008: Questo valore non è supportato.

[in] pszUserName

Puntatore a una stringa con terminazione Null che specifica il nome utente da convertire. Per gli utenti di dominio, la stringa deve essere nel formato seguente:

Domainname\Nome utente

Per le identità online, se la credenziale è una password di testo non crittografato, il formato del nome utente è ProviderName UserName\. Se la credenziale è una struttura SEC_WINNT_AUTH_IDENTITY_EX2 , il nome utente è una stringa codificata che rappresenta l'output del parametro UserName di una chiamata di funzione a SspiEncodeAuthIdentityAsStrings.

Per le credenziali della smart card o del certificato, il nome utente è una stringa codificata che rappresenta l'output di una chiamata di funzione a CredMarshalCredential con l'opzione CertCredential.

Windows Server 2008 R2, Windows 7, Windows Server 2008 e Windows Vista: Le identità online non sono supportate.

[in] pszPassword

Puntatore a una stringa con terminazione Null che specifica la password da convertire.

Per SEC_WINNT_AUTH_IDENTITY_EX2 credenziali, la password è una stringa codificata che si trova nell'output ppszPackedCredentialsString di una chiamata di funzione a SspiEncodeAuthIdentityAsStrings.

Per le credenziali della smart card , si tratta del PIN della smart card .

Windows Server 2008 R2, Windows 7, Windows Server 2008 e Windows Vista: Le identità online non sono supportate.

[out] pPackedCredentials

Puntatore a una matrice di byte che, nell'output, riceve il buffer di autenticazione compresso. Questo parametro può essere NULL per ricevere le dimensioni del buffer necessarie nel parametro pcbPackedCredentials .

[in, out] pcbPackedCredentials

Puntatore a un valore DWORD che specifica le dimensioni, in byte, del buffer pPackedCredentials . Nell'output, se il buffer non è di dimensioni sufficienti, specifica le dimensioni richieste, in byte, del buffer pPackedCredentials .

Valore restituito

TRUE se la funzione ha esito positivo; in caso contrario, FALSE.

Per informazioni sugli errori estesi, chiamare la funzione GetLastError , che può restituire i codici di errore seguenti.

Codice restituito Descrizione
ERROR_INSUFFICIENT_BUFFER
Il buffer fornito da pPackedCredentials è troppo piccolo.

Commenti

Nota

L'intestazione wincred.h definisce CredPackAuthenticationBuffer come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wincred.h
Libreria Credui.lib
DLL Credui.dll