Funzione CredUIPromptForWindowsCredentialsW (wincred.h)
La funzione CredUIPromptForWindowsCredentials crea e visualizza una finestra di dialogo configurabile che consente agli utenti di fornire informazioni sulle credenziali usando qualsiasi provider di credenziali installato nel computer locale.
Sintassi
CREDUIAPI DWORD CredUIPromptForWindowsCredentialsW(
[in, optional] PCREDUI_INFOW pUiInfo,
[in] DWORD dwAuthError,
[in, out] ULONG *pulAuthPackage,
[in, optional] LPCVOID pvInAuthBuffer,
[in] ULONG ulInAuthBufferSize,
[out] LPVOID *ppvOutAuthBuffer,
[out] ULONG *pulOutAuthBufferSize,
[in, out, optional] BOOL *pfSave,
[in] DWORD dwFlags
);
Parametri
[in, optional] pUiInfo
Puntatore a una struttura CREDUI_INFO che contiene informazioni per personalizzare l'aspetto della finestra di dialogo visualizzata da questa funzione.
Se il membro hwndParent della struttura CREDUI_INFO non è NULL, questa funzione visualizza una finestra di dialogo modale centrata sulla finestra padre.
Se il membro hwndParent della struttura CREDUI_INFO è NULL, la funzione visualizza una finestra di dialogo centrata sullo schermo.
Questa funzione ignora il membro hbmBanner della struttura CREDUI_INFO .
[in] dwAuthError
Codice di errore di Windows, definito in Winerror.h, visualizzato nella finestra di dialogo. Se le credenziali raccolte in precedenza non sono valide, il chiamante usa questo parametro per passare il messaggio di errore dall'API che ha raccolto le credenziali (ad esempio, Winlogon) a questa funzione. Il messaggio di errore corrispondente viene formattato e visualizzato nella finestra di dialogo. Impostare il valore di questo parametro su zero per non visualizzare alcun messaggio di errore.
[in, out] pulAuthPackage
In input, il valore di questo parametro viene usato per specificare il pacchetto di autenticazione per cui vengono serializzate le credenziali nel buffer pvInAuthBuffer . Se il valore di pvInAuthBuffer è NULL e il flag CREDUIWIN_AUTHPACKAGE_ONLY viene impostato nel parametro dwFlags , verranno enumerati solo i provider di credenziali in grado di serializzare le credenziali per il pacchetto di autenticazione specificato.
Per ottenere il valore appropriato da usare per questo parametro nell'input, chiamare la funzione LsaLookupAuthenticationPackage e usare il valore del parametro AuthenticationPackage di tale funzione.
Nell'output questo parametro specifica il pacchetto di autenticazione per il quale vengono serializzate le credenziali nel buffer ppvOutAuthBuffer .
[in, optional] pvInAuthBuffer
Puntatore a un BLOB di credenziali usato per popolare i campi delle credenziali nella finestra di dialogo. Impostare il valore di questo parametro su NULL per lasciare vuoti i campi delle credenziali.
[in] ulInAuthBufferSize
Dimensioni, in byte, del buffer pvInAuthBuffer .
[out] ppvOutAuthBuffer
L'indirizzo di un puntatore che, nell'output, specifica il BLOB delle credenziali. Per le credenziali Kerberos, NTLM o Negotiate, chiamare la funzione CredUnPackAuthenticationBuffer per convertire questo BLOB in rappresentazioni di stringa delle credenziali.
Al termine dell'uso del BLOB delle credenziali, cancellarlo dalla memoria chiamando la funzione SecureZeroMemory e liberandola chiamando la funzione CoTaskMemFree .
[out] pulOutAuthBufferSize
Dimensioni, in byte, del buffer ppvOutAuthBuffer .
[in, out, optional] pfSave
Puntatore a un valore booleano che, all'input, specifica se la casella di controllo Salva è selezionata nella finestra di dialogo visualizzata da questa funzione. Nell'output, il valore di questo parametro specifica se la casella di controllo Salva è stata selezionata quando l'utente fa clic sul pulsante Invia nella finestra di dialogo. Impostare questo parametro su NULL per ignorare la casella di controllo Salva .
Questo parametro viene ignorato se il flag CREDUIWIN_CHECKBOX non è impostato nel parametro dwFlags .
[in] dwFlags
Valore che specifica il comportamento per questa funzione. Questo valore può essere una combinazione OR bit per bit di uno o più dei valori seguenti.
Valore | Significato |
---|---|
|
Il chiamante richiede che il provider di credenziali restituisca il nome utente e la password in testo normale.
Questo valore non può essere combinato con SECURE_PROMPT. |
|
La casella di controllo Salva viene visualizzata nella finestra di dialogo. |
|
Devono essere enumerati solo i provider di credenziali che supportano il pacchetto di autenticazione specificato dal parametro pulAuthPackage .
Questo valore non può essere combinato con CREDUIWIN_IN_CRED_ONLY. |
|
Devono essere enumerate solo le credenziali specificate dal parametro pvInAuthBuffer per il pacchetto di autenticazione specificato dal parametro pulAuthPackage .
Se questo flag è impostato e il parametro pvInAuthBuffer è NULL, la funzione ha esito negativo. Questo valore non può essere combinato con CREDUIWIN_AUTHPACKAGE_ONLY. |
|
I provider di credenziali devono enumerare solo gli amministratori. Questo valore è destinato solo ai fini del controllo dell'account utente. È consigliabile che i chiamanti esterni non impostino questo flag. |
|
È necessario enumerare solo le credenziali in ingresso per il pacchetto di autenticazione specificato dal parametro pulAuthPackage . |
|
La finestra di dialogo credenziali deve essere visualizzata sul desktop protetto. Questo valore non può essere combinato con CREDUIWIN_GENERIC.
Windows Vista: Questo valore è supportato a partire da Windows Vista con SP1. |
|
La finestra di dialogo credenziali viene richiamata dalla funzione SspiPromptForCredentials e il client viene richiesto prima di un handshake precedente. Se SSPIPFC_NO_CHECKBOX viene passato nel parametro pvInAuthBuffer , il provider di credenziali non deve visualizzare la casella di controllo.
Windows Vista: Questo valore è supportato a partire da Windows Vista con SP1. |
|
Il provider di credenziali non comprimerà il nome dell'autorità di AAD. Questa operazione viene applicata solo ai dispositivi aggiunti ad Azure AD.
Windows 10 versione 1607: questo valore è supportato a partire da Windows 10 versione 1607. |
|
Il provider di credenziali deve allineare il BLOB delle credenziali a cui punta il parametro ppvOutAuthBuffer a un limite a 32 bit, anche se il provider è in esecuzione in un sistema a 64 bit. |
|
Windows Hello credenziali verranno compresse in un buffer di autenticazione della smart card. Questo vale solo per i provider di credenziali viso, impronta digitale e PIN.
Windows 10, versione 1809: questo valore è supportato a partire da Windows 10, versione 1809. |
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce ERROR_SUCCESS. Se la funzione viene annullata dall'utente, restituisce ERROR_CANCELLED. Qualsiasi altro valore restituito indica che la funzione non è stata caricata.
Commenti
Questa funzione non salva le credenziali.
Le applicazioni che usano SSPI per autenticare gli utenti non devono chiamare questa funzione. Chiamare invece SspiPromptForCredentials.
Nota
L'intestazione wincred.h definisce CredUIPromptForWindowsCredentials 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
Requisito | Valore |
---|---|
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 |