функция Msv1_0SubAuthenticationFilter (subauth.h)
Функция Msv1_0SubAuthenticationFilter выполняет проверку подлинности при входе пользователя, относящееся к контроллерам домена.
Функция получает данные о входе пользователя и все сведения, найденные для пользователя в базе данных диспетчера учетных записей безопасности (SAM) контроллера домена.
Эта функция реализуется пользовательскими библиотеками DLL пакета вложенной проверки подлинности для использования с пакетами проверки подлинности Kerberos и MSV1_0.
Синтаксис
NTSTATUS Msv1_0SubAuthenticationFilter(
[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_0SubAuthenticationFilter возвращает успешное выполнение. Допустимо только следующее значение.
Значение | Значение |
---|---|
|
Запишите данные, содержащиеся в элементе Parameters структуры UserAll , обратно в базу данных SAM.
При изменении размера буфера UNICODE_STRING элемента ParametersMsv1_0SubAuthenticationFilter необходимо удалить буфер с помощью функции MIDL_user_free и перераспределить его с помощью функции MIDL_user_allocate. |
[out] UserFlags
Значения, возвращаемые функцией LsaLogonUser в параметре ProfileBuffer этой функции. Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
|
Это был гостевой вход. |
|
Вызывающий объект не указал зашифрованные учетные данные. |
[out] Authoritative
Указатель на логическое значение, указывающее, является ли возвращенное состояние заслуживающим доверия состоянием, которое должно быть возвращено исходному вызывающей объекту. Если возвращено значение FALSE, запрос на вход можно повторить на другом контроллере домена. Этот параметр должен возвращать допустимые сведения независимо от возвращаемого значения вызова функции. Этот параметр не используется с пакетом проверки подлинности Kerberos.
[out] LogoffTime
Указатель на значение, которое получает время выхода пользователя из системы. Это время используется для управления временем входа в систему и указывается как системное время Windows, относительное GMT.
[out] KickoffTime
Указатель на значение, которое получает время, когда пользователь должен выйти из системы. Это время используется для управления временем входа и указывается как системное время, относительное GMT. Если пользователь не должен автоматически выходить из системы, укажите большое положительное значение следующим образом:
KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;
Возвращаемое значение
Эта функция должна возвращать одно из следующих значений.
Код возврата | Описание |
---|---|
|
Ошибки не было. |
|
Учетная запись отключена. |
|
Срок действия учетной записи истек. |
|
Учетная запись заблокирована. |
|
LogonLevel недопустим. |
|
В настоящее время пользователь не авторизован для входа в систему. |
|
Пользователь не имеет прав на вход на указанную рабочую станцию. |
|
У указанного пользователя нет учетной записи. |
|
Срок действия пароля истек. |
|
Пароль должен измениться при следующем входе в систему. |
|
Недопустимый пароль. |
Если функция Msv1_0SubAuthenticationFilter используется с пакетом проверки подлинности Kerberos, если вызов функции возвращает STATUS_SUCCESS и один из двух параметров LogoffTime или KickoffTime имеет ненулевое значение, это значение используется в качестве времени существования билета. Если, с другой стороны, значения обоих параметров не являются нулевыми, используется меньшее из этих двух значений.
Если значение, используемое для времени существования билета (чем раньше LogoffTime и KickoffTime), больше времени существования билета по умолчанию, то это значение будет использоваться в качестве максимального времени продления билета. И наоборот, если большее из двух значений (позднее LogoffTime и KickoffTime) меньше времени существования билета по умолчанию, это значение будет использоваться в качестве времени существования билета. Дополнительные сведения см. в статье Microsoft Kerberos.
При использовании с пакетом проверки подлинности Kerberos, если эта функция возвращает ошибку, центр распространения ключей (KDC) вернет ошибку Kerberos KDC_ERR_POLICY со значением состояния в качестве расширенного кода ошибки.
Комментарии
Реализации этой функции не должны выполнять какие-либо операции , вызывающие трафик LDAP. Например, не подключайтесь к базе данных Active Directory и не запрашивайте ее.
После того как пакет проверки подлинности MSV1_0 или Kerberos проверит вход, функция Msv1_0SubAuthenticationFilter может выполнить дополнительную проверку, чтобы определить, может ли пользователь войти в учетную запись сети. Эта функция вызывается, если библиотека DLL пакета вложенной проверки подлинности правильно зарегистрирована как Auth0 в реестре контроллера домена. Путь к реестру зависит от того, находится ли функция в библиотеке DLL пакета MSV1_0 или вложенной проверки подлинности Kerberos.
Эта подпрограмма фильтра может возвращать STATUS_SUCCESS, указывающее, что вход должен продолжаться, или код сбоя, указывающий на сбой дополнительной проверки.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | subauth.h |