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
ERROR_GEN_FAILURE
Non sono disponibili più credenziali. Se questo codice viene restituito nella prima chiamata, non sono presenti credenziali corrispondenti ai criteri di selezione.
STATUS_MORE_ENTRIES
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.
STATUS_NO_SUCH_LOGON_SESSION
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

Vedi anche

LSA_DISPATCH_TABLE

LSA_SECPKG_FUNCTION_TABLE