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_LOGON 或 KERB_INTERACTIVE_LOGON。
[in] lpPreviousAuthentInfoType
指向标识 lpPreviousAuthentInfo 所指向的结构类型的字符串的指针。 如果指针为 NULL,则没有以前的信息。 此处所需的值与 lpAuthentInfoType 中的值相同。
当 Microsoft 是主验证器时,为交互式登录和服务控制器登录指定以下字符串。
MSV1_0:Interactive
[in] lpPreviousAuthentInfo
指向 结构的指针,该结构包含身份验证信息更改之前使用的凭据。 如果用户在登录前被迫更改密码 (或其他身份验证信息) ,则会提供先前的信息。 如果未强制用户更改身份验证信息,则此指针为 NULL。 此处所需的值与 lpAuthentInfo 中的值相同。
当 Microsoft 是主要验证器时,所使用的结构 MSV1_0_INTERACTIVE_LOGON 或 KERB_INTERACTIVE_LOGON。
[in] lpStationName
指向指定用户已登录的工作站名称的字符串的指针。 工作站名称可用于确定是否可以获取其他 (提供程序特定的) 信息。
当 Microsoft 是主要验证器时,将指定以下字符串之一。
值 | 含义 |
---|---|
|
指示这是通过窗口工作站的交互式登录。 在本例中, StationHandle 是指向父对话框的 HWND 。 |
|
指示这是由服务控制器发起的登录。 本例中不使用 StationHandle。 |
[in] StationHandle
一个 32 位值,其含义取决于 (的名称,因此取决于 lpStationName 中指定的工作站的类型) 。
值 | 含义 |
---|---|
|
“所有者”对话框的句柄 (hwndOwner) 当前显示在屏幕上。 |
|
随机数据。 请勿使用。 |
[out] lpLogonScript
指向可能返回以 null 结尾的字符串的指针的位置的指针的指针。
函数完成后,此值可能指向以 null 结尾的字符串,该字符串包含要执行的程序的名称以及程序所需的任何参数。 应使用 LocalAlloc 为返回的字符串分配内存。 不再需要此内存时,MPR 将释放该内存。
返回值
如果函数成功,该函数将返回WN_SUCCESS。
如果函数失败,它将返回错误代码,可以是以下代码之一。
返回代码 | 说明 |
---|---|
|
凭据管理器不支持 NPLogonNotify。 |
|
网络不存在。 |
|
凭据管理器仍在初始化,尚未准备好调用。 |
注解
NPLogonNotify 函数由凭据管理器实现,用于在身份验证信息更改时接收通知。
允许每个凭据管理器返回可用于执行登录脚本的单个命令行字符串, (实现不应调用 LogonUser 或直接) 加载用户配置文件。 此字符串的缓冲区由凭据管理器分配。 MPR 负责释放它。 lpLogonScript 中返回的字符串应包含作为传递给 CreateProcess 的命令行运行脚本所需的所有信息。
如果字符串需要命令处理器来处理字符串(如命令或批处理文件的情况),则字符串的前缀应为 cmd /C。
当用户配置文件可用时,登录脚本将在用户上下文中运行。 但是,设置的环境变量不会是全局的,并且不会可用于初始 shell (例如,Program Manager) 或代表用户运行的任何其他程序。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | npapi.h |