取得身分識別資訊

實作驗證通訊協議的廠商也可以提供函式介面,以取得使用者要求驗證的初始識別資訊。

廠商應該實作下列函式。

這些函式可以實作在與驗證通訊協定相同的 DLL 中,或在個別的 DLL 中實作。 此外,實作身分識別函式的 DLL 可能支援多個驗證通訊協定。 這些函式的 DLL 路徑會儲存在 驗證通訊協定的機碼底下的 RAS_EAP_VALUENAME_IDENTITY 登錄值中。 如需建立此登錄值的詳細資訊,請參閱 EAP 安裝

RasEapGetIdentity 函式通常會顯示使用者介面(UI),以取得使用者的身分識別資訊。 不過,如果 dwFlags 參數包含RAS_EAP_FLAG_NON_INTERACTIVE旗標, RasEapGetIdentity 就不應該顯示 UI。

如果 RasEapGetIdentity 確實顯示 UI,UI 必須支援WM_COMMAND訊息,其中 LOWORDwParam) 的值等於 IDCANCEL。

如果此 EAP 登錄中的RAS_EAP_VALUENAME_INVOKE_NAMEDLG值設定為零,驗證服務會呼叫 RasEapGetIdentity。 如果RAS_EAP_VALUENAME_INVOKE_NAMEDLG不存在,或已設定為其中一個,驗證服務會顯示標準系統使用者名稱對話方塊。

除了RAS_EAP_VALUENAME_INVOKE_NAMEDLG之外,EAP 廠商可能會在登錄中建立相關值 RAS_EAP_VALUENAME_INVOKE_PWDDLG。 如果此值存在且設定為零,服務將不會顯示標準系統密碼對話方塊。 這個值在實作生物特徵辨識方法時很有用,例如指紋掃描來驗證使用者。 如果RAS_EAP_VALUENAME_INVOKE_NAMEDLG和RAS_EAP_VALUENAME_INVOKE_PWDDLG值都為零,則身分識別UI可用來取得身分識別和生物特徵辨識資訊。 不過,如果只有RAS_EAP_VALUENAME_INVOKE_PWDDLG為零,驗證服務就不會呼叫 RasEapGetIdentity 在此情況下,您可以使用 互動式使用者介面 來取得生物特徵辨識資訊。

如需這些登錄值的詳細資訊,請參閱 驗證通訊協定登錄值

RasEapGetIdentity 取得的資訊會在呼叫 RasEapBegin 期間傳遞至驗證通訊協定。 資訊是由 PPP_EAP_INPUT 結構的 pszIdentitypUserData 成員所指向。 若要將此資訊儲存在用戶端電腦上的登錄中,驗證通訊協議應該會傳回 RasEapMakeMessage 的 pEapOutput 參數中的資訊。

呼叫 RasEapBegin 之後,驗證服務會呼叫 RasEapFreeMemory 來釋放此數據所佔用的記憶體。 因此,驗證通訊協議應該在呼叫 RasEapBegin 期間,將資訊複製到私人記憶體緩衝區。