npLogonNotify 函式 (npapi.h)
注意
此 API 已被取代,將在未來的版本中移除。
MPR 會呼叫此函式來通知認證管理員已發生登入事件,讓認證管理員能夠傳回登入腳本。 The NPLogonNotify function is implemented by a credential manager DLL (see Remarks).
語法
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所指向的結構類型。
當 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。
當使用者設定檔可供使用時,登入腳本將會在使用者內容中執行。 不過,設定的環境變數不會是全域的,而且無法供初始殼層使用 (,例如 Program Manager) 或任何其他程式代表使用者執行。
需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | npapi.h |