LSA_GET_CREDENTIALS funzione di callback (ntsecpkg.h)
Recupera le credenziali associate a una sessione di accesso.
Questa funzione non viene usata dai pacchetti di autenticazione più recenti, ad esempio Kerberos.
Sintassi
LSA_GET_CREDENTIALS LsaGetCredentials;
NTSTATUS LsaGetCredentials(
[in] PLUID LogonId,
[in] ULONG AuthenticationPackage,
[in, out] PULONG QueryContext,
[in] BOOLEAN RetrieveAllCredentials,
[in, out] PLSA_STRING PrimaryKeyValue,
[out] PULONG PrimaryKeyLength,
[out] PLSA_STRING Credentials
)
{...}
Parametri
[in] LogonId
Puntatore a una struttura LUID contenente l'ID sessione della sessione di accesso da cui recuperare le credenziali.
[in] AuthenticationPackage
ID pacchetto di autenticazione del pacchetto di autenticazione chiamante. I pacchetti di autenticazione devono recuperare solo le proprie credenziali.
[in, out] QueryContext
Puntatore a un valore LONG senza segno usato per le chiamate successive per recuperare più credenziali. La prima volta che questa funzione viene usata, il valore a cui punta questo argomento deve essere zero. Successivamente, questo valore verrà aggiornato per consentire al recupero di continuare la posizione in cui è stata interrotta. Questo valore deve pertanto non essere modificato fino a quando non sono state recuperate tutte le credenziali di un'operazione di query specificata.
[in] RetrieveAllCredentials
Indica se tutte le credenziali per la sessione di accesso specificata devono essere recuperate (TRUE) o solo quelle corrispondenti a PrimaryKeyValue (FALSE).
[in, out] PrimaryKeyValue
Questo parametro serve due scopi. Se il parametro RetrieveAllCredentials è FALSE, questa stringa contiene il valore da usare come chiave di ricerca primaria. In questo caso, verranno recuperate solo le credenziali appartenenti alla sessione di accesso corretta con una chiave di ricerca primaria corrispondente a questo valore.
Se RetrieveAllCredentials è TRUE, il valore di questa stringa sull'input viene ignorato e la chiave di ricerca primaria di ogni credenziale recuperata viene restituita in questa stringa.
[out] PrimaryKeyLength
Se il parametro RetrieveAllCredentials è TRUE, questo parametro riceve la lunghezza necessaria per archiviare la stringa PrimaryKeyValue .
[out] Credentials
Puntatore a un buffer che riceve le credenziali recuperate. Viene recuperata una sola credenziale per ogni chiamata effettuata. Le credenziali vengono restituite in un buffer che la funzione alloca chiamando la funzione AllocateLsaHeap . È responsabilità del chiamante liberare il buffer delle credenziali quando non è più necessario chiamando FreeLsaHeap.
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce il codice NTSTATUS, STATUS_SUCCESS, che indica che le credenziali sono state recuperate correttamente.
Se la funzione ha esito negativo, il valore restituito è un codice NTSTATUS, che può essere uno dei valori seguenti o uno dei valori restituiti della funzione Criteri LSA.
Codice restituito | Descrizione |
---|---|
|
Non sono disponibili più credenziali. Se questo codice viene restituito nella prima chiamata, non sono presenti credenziali corrispondenti ai criteri di selezione. |
|
La stringa fornita per ricevere PrimaryKeyValue non era abbastanza grande per contenere i dati. In questo caso, non vengono recuperati dati e il valore QueryContext non viene modificato. Ciò consente di eseguire di nuovo la stessa chiamata con un buffer stringa più grande. |
|
Impossibile trovare la sessione di accesso specificata. |
La funzione LsaNtStatusToWinError converte un codice NTSTATUS in un codice di errore di Windows.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | ntsecpkg.h |