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
);

parameters

[in] lpLogonId

指向刚刚登录的 会话 标识符的指针。

[in] lpAuthentInfoType

指向标识 lpAuthentInfo 所指向的结构类型的字符串的指针。

当 Microsoft 是主要验证器时,为交互式和服务控制器登录指定以下字符串之一。

MSV1_0:Interactive
Kerberos:Interactive

[in] lpAuthentInfo

指向 结构的指针,该结构包含用于通过主验证器成功登录用户的凭据。

当 Microsoft 是主验证器 (即 lpAuthentifoType 为“MSV1_0:Interactive”或“Kerberos:Interactive”) 时,使用的结构为 MSV1_0_INTERACTIVE_LOGONKERB_INTERACTIVE_LOGON

[in] lpPreviousAuthentInfoType

指向标识 lpPreviousAuthentInfo 所指向的结构类型的字符串的指针。 如果指针为 NULL,则没有以前的信息。 此处所需的值与 lpAuthentInfoType 中的值相同。

当 Microsoft 是主验证器时,为交互式登录和服务控制器登录指定以下字符串。

MSV1_0:Interactive

[in] lpPreviousAuthentInfo

指向 结构的指针,该结构包含身份验证信息更改之前使用的凭据。 如果用户在登录前被迫更改密码 (或其他身份验证信息) ,则会提供先前的信息。 如果未强制用户更改身份验证信息,则此指针为 NULL。 此处所需的值与 lpAuthentInfo 中的值相同。

当 Microsoft 是主要验证器时,所使用的结构 MSV1_0_INTERACTIVE_LOGONKERB_INTERACTIVE_LOGON

[in] lpStationName

指向指定用户已登录的工作站名称的字符串的指针。 工作站名称可用于确定是否可以获取其他 (提供程序特定的) 信息。

当 Microsoft 是主要验证器时,将指定以下字符串之一。

含义
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

当用户配置文件可用时,登录脚本将在用户上下文中运行。 但是,设置的环境变量不会是全局的,并且不会可用于初始 shell (例如,Program Manager) 或代表用户运行的任何其他程序。

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 npapi.h

请参阅

CreateProcess

LocalAlloc

MSV1_0_INTERACTIVE_LOGON

NPGetCaps

NPPasswordChangeNotify