Condividi tramite


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, AcquireCredentialsHandleo 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\UserName

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

Per o credenziali 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 nel ppszPackedCredentialsString output di una chiamata di funzione a SspiEncodeAuthIdentityAsStrings.

Per credenziali di smart card, si tratta del PIN 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 pcbPackedCredential s.

[in, out] pcbPackedCredentials

Puntatore a un valore DWORD che specifica le dimensioni, in byte, del buffer pPackedCredentials . In caso di 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 estese sull'errore, 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.

Osservazioni

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 non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista [solo app desktop]
server minimo supportato Windows Server 2008 [solo app desktop]
piattaforma di destinazione Finestre
intestazione wincred.h
libreria Credui.lib
dll Credui.dll