LSA_GET_CREDENTIALS função de retorno de chamada (ntsecpkg.h)

Recupera credenciais associadas a uma sessão de logon.

Essa função não é usada por pacotes de autenticação mais recentes, como Kerberos.

Sintaxe

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
)
{...}

Parâmetros

[in] LogonId

Ponteiro para uma estrutura LUID que contém a ID da sessão de logon da qual as credenciais devem ser recuperadas.

[in] AuthenticationPackage

ID do pacote de autenticação do pacote de autenticação de chamada. Os pacotes de autenticação devem recuperar apenas suas próprias credenciais.

[in, out] QueryContext

Ponteiro para um valor LONG sem sinal usado em chamadas sucessivas para recuperar várias credenciais. Na primeira vez que essa função é usada, o valor apontado por esse argumento deve ser zero. Depois disso, esse valor será atualizado para permitir que a recuperação continue de onde parou. Portanto, esse valor não deve ser alterado até que todas as credenciais de uma determinada operação de consulta sejam recuperadas.

[in] RetrieveAllCredentials

Indica se todas as credenciais para a sessão de logon especificada devem ser recuperadas (TRUE) ou apenas aquelas que correspondem ao PrimaryKeyValue (FALSE) especificado.

[in, out] PrimaryKeyValue

Esse parâmetro serve a duas finalidades. Se o parâmetro RetrieveAllCredentials for FALSE, essa cadeia de caracteres conterá o valor a ser usado como uma chave de pesquisa primária. Nesse caso, somente as credenciais pertencentes à sessão de logon correta com uma chave de pesquisa primária correspondente a esse valor serão recuperadas.

Se RetrieveAllCredentials for TRUE, o valor dessa cadeia de caracteres na entrada será ignorado e a chave de pesquisa primária de cada credencial recuperada será retornada nesta cadeia de caracteres.

[out] PrimaryKeyLength

Se o parâmetro RetrieveAllCredentials for TRUE, esse parâmetro receberá o comprimento necessário para armazenar a cadeia de caracteres PrimaryKeyValue .

[out] Credentials

Ponteiro para um buffer que recebe a credencial recuperada. Apenas uma credencial é recuperada para cada chamada feita. A credencial é retornada em um buffer que a função aloca chamando a função AllocateLsaHeap . É responsabilidade do chamador liberar o buffer credenciais quando ele não for mais necessário, chamando FreeLsaHeap.

Retornar valor

Se a função for bem-sucedida, a função retornará o código NTSTATUS, STATUS_SUCCESS, indicando que as credenciais foram recuperadas com êxito.

Se a função falhar, o valor retornado será um código NTSTATUS, que pode ser um dos valores a seguir ou um dos valores retornados da função de política LSA.

Código de retorno Descrição
ERROR_GEN_FAILURE
Não há mais credenciais disponíveis. Se esse código for retornado na primeira chamada, não haverá credenciais que correspondam aos critérios de seleção.
STATUS_MORE_ENTRIES
A cadeia de caracteres fornecida para receber o PrimaryKeyValue não era grande o suficiente para manter os dados. Nesse caso, nenhum dado é recuperado e o valor QueryContext não é modificado. Isso permite que a mesma chamada seja feita novamente com um buffer de cadeia de caracteres maior.
STATUS_NO_SUCH_LOGON_SESSION
Não foi possível encontrar a sessão de logon especificada.
 

A função LsaNtStatusToWinError converte um código NTSTATUS em um código de erro do Windows.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho ntsecpkg.h

Confira também

LSA_DISPATCH_TABLE

LSA_SECPKG_FUNCTION_TABLE