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_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

當使用者設定檔可供使用時,登入腳本將會在使用者內容中執行。 不過,設定的環境變數不會是全域的,而且無法供初始殼層使用 (,例如 Program Manager) 或任何其他程式代表使用者執行。

需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 npapi.h

另請參閱

CreateProcess

LocalAlloc

MSV1_0_INTERACTIVE_LOGON

NPGetCaps

NPPasswordChangeNotify