функция Msv1_0SubAuthenticationRoutine (subauth.h)
Функция Msv1_0SubAuthenticationRoutine выполняет проверку подлинности для конкретного клиента или сервера.
Учетные данные субъекта безопасности и сведения из базы данных диспетчера учетных записей безопасности (SAM) передаются в эту функцию для проверки подлинности.
Эта функция реализуется пользовательскими библиотеками DLL пакета подутвержения для использования с пакетом проверки подлинности MSV1_0.
Функция Msv1_0SubAuthenticationRoutine вызывается только для неинтерактивной проверки подлинности, только на сервере проверки подлинности, на котором находится учетная запись, и только в том случае, если в реестре зарегистрирована библиотека DLL под аутентификацией.
Синтаксис
NTSTATUS Msv1_0SubAuthenticationRoutine(
[in] NETLOGON_LOGON_INFO_CLASS LogonLevel,
[in] PVOID LogonInformation,
[in] ULONG Flags,
[in] PUSER_ALL_INFORMATION UserAll,
[out] PULONG WhichFields,
[out] PULONG UserFlags,
[out] PBOOLEAN Authoritative,
[out] PLARGE_INTEGER LogoffTime,
[out] PLARGE_INTEGER KickoffTime
);
Параметры
[in] LogonLevel
Задает уровень сведений, указанных в параметре LogonInformation . Этот параметр обычно имеет значение NetlogonInteractiveInformation.
[in] LogonInformation
Указатель на структуру NETLOGON_LOGON_IDENTITY_INFO . Члены этой структуры содержат сведения о пользователе, который входит в систему. Элемент LogonDomainName этой структуры игнорируется.
[in] Flags
Необязательный элемент. Содержит флаги, описывающие обстоятельства входа. Этот параметр может принимать одно из указанных ниже значений.
[in] UserAll
Указатель на структуру USER_ALL_INFORMATION , содержащую описание пользователя, возвращаемое из базы данных SAM.
[out] WhichFields
Возвращает элементы структуры USER_ALL_INFORMATION , которые необходимо записать обратно в базу данных SAM. Эти элементы будут записаны только в том случае , если Msv1_0SubAuthenticationRoutine вернет вызывающей объекту успешное выполнение. Допустимо только следующее значение.
Значение | Значение |
---|---|
|
Запишите данные, содержащиеся в элементе Parameters структуры UserAll , обратно в базу данных SAM.
Если размер буфера UNICODE_STRING элемента Parameters изменен, Msv1_0SubAuthenticationRoutine должны удалить буфер с помощью функции MIDL_user_free и перераспределить его с помощью функции MIDL_user_allocate . |
[out] UserFlags
Значения, возвращаемые из параметра ProfileBuffer функции LsaLogonUser, если она содержит MSV1_0_LM20_LOGON_PROFILE структуру. В настоящее время для элемента UserFlags структуры определены следующие значения.
Значение | Значение |
---|---|
|
Это гостевой вход. |
|
Вызывающий объект не указал зашифрованные учетные данные. |
[out] Authoritative
Указатель на логическое значение, указывающее, является ли возвращенное состояние полномочным состоянием, которое должно быть возвращено исходному вызывающму объекту. Если возвращенное значение равно FALSE, запрос на вход можно повторить на другом контроллере домена. Этот параметр должен возвращать допустимые сведения независимо от возвращаемого значения вызова функции.
[out] LogoffTime
Указатель на значение, которое получает время выхода пользователя из системы. Это время используется для управления временем входа в систему и указывается как системное время, относительное GMT.
[out] KickoffTime
Указатель на значение, которое получает время, когда пользователь должен выйти из системы. Это время используется для управления временем входа в систему и указывается как системное время, относительное GMT. Если пользователь не должен выходить из системы, укажите большое положительное значение, например:
KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;
Возвращаемое значение
Эта функция должна возвращать одно из следующих значений.
Код возврата | Описание |
---|---|
|
Ошибки не произошло. |
|
Учетная запись отключена. |
|
Срок действия учетной записи истек. |
|
Учетная запись заблокирована. |
|
Недопустимое значение LogonLevel . |
|
В настоящее время пользователь не имеет прав на вход. |
|
Пользователь не имеет прав на вход на указанную рабочую станцию. |
|
У указанного пользователя нет учетной записи. |
|
Срок действия пароля истек. |
|
Учетная запись помечена, чтобы указать, что пароль необходимо изменить при следующем входе в систему. |
|
Пароль недействителен. |
Комментарии
Эта функция вызывается пакетом проверки подлинности MSV1_0, если часть параметра AuthenticationInformation указывает на то, что требуется выполнить подаутентику, и если библиотека DLL вложенной проверки подлинности, которая экспортирует функцию Msv1_0SubAuthenticationRoutine , правильно зарегистрирована на рабочей станции.
Пакет проверки подлинности MSV1_0 не поддерживает вложенную проверку подлинности для интерактивных входов, для которых требуется структура MSV1_0_INTERACTIVE_LOGON . Для входа в сеть, для которых требуется MSV1_0_LM20_LOGON структура, можно использовать подаутентику.
Функция Msv1_0SubAuthenticationRoutine вызывается после того, как будет найден правильный контроллер домена, а все сведения о субъекте безопасности для проверки подлинности получены из базы данных SAM. Когда используется вложенная проверка подлинности, проверка подлинности является ответственностью библиотеки DLL для вложенной проверки подлинности и должна выполняться функцией Msv1_0SubAuthenticationRoutine , экспортируемой этой библиотекой DLL.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | subauth.h |