Функция NPLogonNotify (npapi.h)

Примечание

Этот API является нерекомендуемым и будет удален в следующем выпуске.

MPR вызывает эту функцию, чтобы уведомить диспетчер учетных данных о возникновении события входа, что позволяет диспетчеру учетных данных вернуть сценарий входа. Функция NPLogonNotify реализуется библиотекой DLL диспетчера учетных данных (см. примечания).

Синтаксис

DWORD NPLogonNotify(
  [in]  PLUID   lpLogonId,
  [in]  LPCWSTR lpAuthentInfoType,
  [in]  LPVOID  lpAuthentInfo,
  [in]  LPCWSTR lpPreviousAuthentInfoType,
  [in]  LPVOID  lpPreviousAuthentInfo,
  [in]  LPWSTR  lpStationName,
  [in]  LPVOID  StationHandle,
  [out] LPWSTR  *lpLogonScript
);

Параметры

[in] lpLogonId

Указатель на идентификатор сеанса , который только что вошел в систему.

[in] lpAuthentInfoType

Указатель на строку, определяющую тип структуры, на которую указывает lpAuthentInfo.

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

MSV1_0:Interactive
Kerberos:Interactive

[in] lpAuthentInfo

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

Если основным элементом проверки подлинности является Корпорация Майкрософт (то есть если lpAuthentifoType имеет значение "MSV1_0:Interactive" или "Kerberos:Interactive"), используемая структура используется MSV1_0_INTERACTIVE_LOGON или KERB_INTERACTIVE_LOGON.

[in] lpPreviousAuthentInfoType

Указатель на строку, определяющую тип структуры, на которую указывает lpPreviousAuthentInfo. Если указатель имеет значение NULL, предыдущие сведения отсутствуют. Ожидаемые здесь значения совпадают с значениями в lpAuthentInfoType.

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

MSV1_0:Interactive

[in] lpPreviousAuthentInfo

Указатель на структуру, содержащую учетные данные, используемые до изменения сведений о проверке подлинности. Предварительные сведения предоставляются, если пользователь был вынужден изменить пароль (или другие сведения для проверки подлинности) перед входом в систему. Если пользователь не был вынужден изменить сведения для проверки подлинности, этот указатель имеет значение NULL. Ожидаемые здесь значения совпадают с значениями в lpAuthentInfo.

Если корпорация Майкрософт является основным элементом проверки подлинности, используемая структура MSV1_0_INTERACTIVE_LOGON или KERB_INTERACTIVE_LOGON.

[in] lpStationName

Указатель на строку, указывающую имя станции, в которую вошел пользователь. Имя станции можно использовать для определения возможности получения дополнительных сведений (для конкретных поставщиков).

Если майкрософт является основным элементом проверки подлинности, будет указана одна из следующих строк.

Значение Значение
WinSta_0
Указывает, что это интерактивный вход через оконную станцию. В этом случае StationHandle — это HWND для родительского диалогового окна.
SvcCtl
Указывает, что это вход, инициированный контроллером службы. StationHandle в этом случае не используется.

[in] StationHandle

32-разрядное значение, значение которого зависит от имени (и, следовательно, типа) станции, указанной в lpStationName.

Значение Значение
WinSta_0
Дескриптор диалогового окна владельца (hwndOwner), которое в настоящее время отображается на экране.
SvcCtl
Случайные данные. Не используйте.

[out] lpLogonScript

Указатель на расположение, в котором может быть возвращен указатель на строку, завершаемую null.

После завершения функции это значение может указывать на строку, завершающуюся значением NULL, которая содержит имя выполняемой программы, а также все параметры, необходимые программе. Для выделения памяти для возвращаемой строки следует использовать LocalAlloc. Эта память будет освобождена MPR, когда она больше не нужна.

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

Если функция завершается успешно, функция возвращает WN_SUCCESS.

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

Код возврата Описание
WN_NOT_SUPPORTED

Диспетчер учетных данных не поддерживает NPLogonNotify.

WN_NO_NETWORK
Сеть отсутствует.
WN_FUNCTION_BUSY
Диспетчер учетных данных по-прежнему инициализируется и не готов к вызову.

Комментарии

Функция NPLogonNotify реализуется диспетчерами учетных данных для получения уведомлений при изменении сведений о проверке подлинности.

Каждому диспетчеру учетных данных разрешено возвращать одну строку командной строки, которую можно использовать для выполнения скрипта входа (реализация не должна вызывать LogonUser или загружать профиль пользователя напрямую). Буфер этой строки выделяется диспетчером учетных данных. MPR отвечает за его освобождение. Строка, возвращаемая в lpLogonScript , должна содержать все сведения, необходимые для запуска скрипта в качестве командной строки, передаваемой в CreateProcess.

Если для строки требуется, чтобы обработчик команд обрабатывал строку, как в случае с командами или пакетными файлами, то строка должна иметь префикс cmd /C.

Сценарии входа будут выполняться в контексте пользователя, когда профиль пользователя будет доступен. Однако заданные переменные среды не будут глобальными и не будут доступны начальной оболочке (например, диспетчеру программ) или любой другой программе, выполняемой от имени пользователя.

Требования

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

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

CreateProcess

LocalAlloc

MSV1_0_INTERACTIVE_LOGON

NPGetCaps

NPPasswordChangeNotify