функция Msv1_0SubAuthenticationRoutine (subauth.h)

Функция Msv1_0SubAuthenticationRoutine выполняет проверку подлинности для конкретного клиента или сервера.

Учетные данные субъекта безопасности и сведения из базы данных диспетчера учетных записей безопасности (SAM) передаются в эту функцию для проверки подлинности.

Эта функция реализуется пользовательскими библиотеками DLL пакета подутвержения для использования с пакетом проверки подлинности MSV1_0.

Функция Msv1_0SubAuthenticationRoutine вызывается только для неинтерактивной проверки подлинности, только на сервере проверки подлинности, на котором находится учетная запись, и только в том случае, если в реестре зарегистрирована библиотека DLL под аутентификацией.

Примечание Пакет проверки подлинности Kerberos не вызывает эту подпрограмму.
 

Синтаксис

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

Необязательный элемент. Содержит флаги, описывающие обстоятельства входа. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
MSV1_0_PASSTHRU
Сквозная проверка подлинности. Пользователь не подключается к этому компьютеру.
MSV1_0_GUEST_LOGON
Это повторная попытка входа с помощью учетной записи пользователя GUEST.

[in] UserAll

Указатель на структуру USER_ALL_INFORMATION , содержащую описание пользователя, возвращаемое из базы данных SAM.

[out] WhichFields

Возвращает элементы структуры USER_ALL_INFORMATION , которые необходимо записать обратно в базу данных SAM. Эти элементы будут записаны только в том случае , если Msv1_0SubAuthenticationRoutine вернет вызывающей объекту успешное выполнение. Допустимо только следующее значение.

Значение Значение
USER_ALL_PARAMETERS
Запишите данные, содержащиеся в элементе Parameters структуры UserAll , обратно в базу данных SAM.

Если размер буфера UNICODE_STRING элемента Parameters изменен, Msv1_0SubAuthenticationRoutine должны удалить буфер с помощью функции MIDL_user_free и перераспределить его с помощью функции MIDL_user_allocate .

[out] UserFlags

Значения, возвращаемые из параметра ProfileBuffer функции LsaLogonUser, если она содержит MSV1_0_LM20_LOGON_PROFILE структуру. В настоящее время для элемента UserFlags структуры определены следующие значения.

Значение Значение
LOGON_GUEST
Это гостевой вход.
LOGON_NOENCRYPTION
Вызывающий объект не указал зашифрованные учетные данные.
 
Примечание По соглашению пакеты для подаутентации возвращают биты только в байте UserFlags в высоком порядке; однако это соглашение не применяется.
 

[out] Authoritative

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

[out] LogoffTime

Указатель на значение, которое получает время выхода пользователя из системы. Это время используется для управления временем входа в систему и указывается как системное время, относительное GMT.

[out] KickoffTime

Указатель на значение, которое получает время, когда пользователь должен выйти из системы. Это время используется для управления временем входа в систему и указывается как системное время, относительное GMT. Если пользователь не должен выходить из системы, укажите большое положительное значение, например:

KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;

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

Эта функция должна возвращать одно из следующих значений.

Код возврата Описание
STATUS_SUCCESS
Ошибки не произошло.
STATUS_ACCOUNT_DISABLED
Учетная запись отключена.
STATUS_ACCOUNT_EXPIRED
Срок действия учетной записи истек.
STATUS_ACCOUNT_LOCKED_OUT
Учетная запись заблокирована.
STATUS_INVALID_INFO_CLASS
Недопустимое значение LogonLevel .
STATUS_INVALID_LOGON_HOURS
В настоящее время пользователь не имеет прав на вход.
STATUS_INVALID_WORKSTATION
Пользователь не имеет прав на вход на указанную рабочую станцию.
STATUS_NO_SUCH_USER
У указанного пользователя нет учетной записи.
STATUS_PASSWORD_EXPIRED
Срок действия пароля истек.
STATUS_PASSWORD_MUST_CHANGE
Учетная запись помечена, чтобы указать, что пароль необходимо изменить при следующем входе в систему.
STATUS_WRONG_PASSWORD
Пароль недействителен.

Комментарии

Эта функция вызывается пакетом проверки подлинности 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