Функция 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
Указатель на строку, указывающую имя станции, в которую вошел пользователь. Имя станции можно использовать для определения возможности получения дополнительных сведений (для конкретных поставщиков).
Если майкрософт является основным элементом проверки подлинности, будет указана одна из следующих строк.
[in] StationHandle
32-разрядное значение, значение которого зависит от имени (и, следовательно, типа) станции, указанной в lpStationName.
Значение | Значение |
---|---|
|
Дескриптор диалогового окна владельца (hwndOwner), которое в настоящее время отображается на экране. |
|
Случайные данные. Не используйте. |
[out] lpLogonScript
Указатель на расположение, в котором может быть возвращен указатель на строку, завершаемую null.
После завершения функции это значение может указывать на строку, завершающуюся значением NULL, которая содержит имя выполняемой программы, а также все параметры, необходимые программе. Для выделения памяти для возвращаемой строки следует использовать LocalAlloc. Эта память будет освобождена MPR, когда она больше не нужна.
Возвращаемое значение
Если функция завершается успешно, функция возвращает WN_SUCCESS.
Если функция завершается сбоем, она возвращает код ошибки, который может быть одним из следующих.
Код возврата | Описание |
---|---|
|
Диспетчер учетных данных не поддерживает NPLogonNotify. |
|
Сеть отсутствует. |
|
Диспетчер учетных данных по-прежнему инициализируется и не готов к вызову. |
Комментарии
Функция NPLogonNotify реализуется диспетчерами учетных данных для получения уведомлений при изменении сведений о проверке подлинности.
Каждому диспетчеру учетных данных разрешено возвращать одну строку командной строки, которую можно использовать для выполнения скрипта входа (реализация не должна вызывать LogonUser или загружать профиль пользователя напрямую). Буфер этой строки выделяется диспетчером учетных данных. MPR отвечает за его освобождение. Строка, возвращаемая в lpLogonScript , должна содержать все сведения, необходимые для запуска скрипта в качестве командной строки, передаваемой в CreateProcess.
Если для строки требуется, чтобы обработчик команд обрабатывал строку, как в случае с командами или пакетными файлами, то строка должна иметь префикс cmd /C.
Сценарии входа будут выполняться в контексте пользователя, когда профиль пользователя будет доступен. Однако заданные переменные среды не будут глобальными и не будут доступны начальной оболочке (например, диспетчеру программ) или любой другой программе, выполняемой от имени пользователя.
Требования
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | npapi.h |