Поделиться через


функция обратного вызова LSA_GET_CREDENTIALS (ntsecpkg.h)

Извлекает учетные данные, связанные с сеансом входа.

Эта функция не используется новыми пакетами проверки подлинности, такими как Kerberos.

Синтаксис

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

Параметры

[in] LogonId

Указатель на структуру LUID , содержащую идентификатор сеанса входа, из которого необходимо извлечь учетные данные.

[in] AuthenticationPackage

Идентификатор пакета проверки подлинности вызывающего пакета проверки подлинности. Пакеты проверки подлинности должны получать только собственные учетные данные.

[in, out] QueryContext

Указатель на значение LONG без знака, используемое в последовательных вызовах для получения нескольких учетных данных. При первом использовании этой функции значение, указываемое этим аргументом, должно быть равно нулю. После этого это значение будет обновлено, чтобы разрешить извлечение продолжаться там, где он был выключен. Таким образом, это значение не должно изменяться до тех пор, пока не будут получены все учетные данные данной операции запроса.

[in] RetrieveAllCredentials

Указывает, должны ли быть получены все учетные данные для указанного сеанса входа (TRUE) или только те, которые соответствуют указанному значению PrimaryKeyValue (FALSE).

[in, out] PrimaryKeyValue

Этот параметр служит двум целям. Если параметр RetrieveAllCredentials имеет значение FALSE, эта строка содержит значение, используемое в качестве первичного ключа подстановки. В этом случае будут получены только учетные данные, принадлежащие правильному сеансу входа в систему с первичным ключом подстановки, соответствующим этому значению.

Если параметр RetrieveAllCredentials имеет значение TRUE, значение этой строки во входных данных игнорируется и в этой строке возвращается первичный ключ подстановки для каждого полученного учетных данных.

[out] PrimaryKeyLength

Если параметр RetrieveAllCredentials имеет значение TRUE, он получает длину, необходимую для хранения строки PrimaryKeyValue .

[out] Credentials

Указатель на буфер, получающий полученные учетные данные. Для каждого вызова извлекается только один учетный данные. Учетные данные возвращаются в буфере, который функция выделяет путем вызова функции AllocateLsaHeap . Вызывающий объект отвечает за освобождение буфера учетных данных , когда он больше не нужен, вызывая FreeLsaHeap.

Возвращаемое значение

Если функция выполняется успешно, функция возвращает код NTSTATUS, STATUS_SUCCESS, указывающий, что учетные данные были успешно получены.

Если функция завершается ошибкой, возвращаемым значением является код NTSTATUS, который может быть одним из следующих значений или одним из возвращаемых значений функции политики LSA.

Код возврата Описание
ERROR_GEN_FAILURE
Учетные данные больше недоступны. Если этот код возвращается при первом вызове, учетные данные, соответствующие условиям выбора, отсутствуют.
STATUS_MORE_ENTRIES
Строка, предоставленная для получения PrimaryKeyValue, не была достаточно большой для хранения данных. В этом случае данные не извлекаются, и значение QueryContext не изменяется. Это позволяет снова выполнить тот же вызов с большим строковым буфером.
STATUS_NO_SUCH_LOGON_SESSION
Не удалось найти указанный сеанс входа.
 

Функция LsaNtStatusToWinError преобразует код NTSTATUS в код ошибки Windows.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header ntsecpkg.h

См. также раздел

LSA_DISPATCH_TABLE

LSA_SECPKG_FUNCTION_TABLE