PPP_EAP_INPUT 結構 (raseapif.h)
PPP_EAP_INPUT結構用於 RAS 連線管理員 服務 PPP 實作與 EAP 之間的互動。
此結構提供使用者資訊,並協助使用驗證提供者,例如RADIUS伺服器。
語法
typedef struct _PPP_EAP_INPUT {
DWORD dwSizeInBytes;
DWORD fFlags;
BOOL fAuthenticator;
WCHAR *pwszIdentity;
WCHAR *pwszPassword;
BYTE bInitialId;
RAS_AUTH_ATTRIBUTE *pUserAttributes;
BOOL fAuthenticationComplete;
DWORD dwAuthResultCode;
HANDLE hTokenImpersonateUser;
BOOL fSuccessPacketReceived;
BOOL fDataReceivedFromInteractiveUI;
PBYTE pDataFromInteractiveUI;
DWORD dwSizeOfDataFromInteractiveUI;
PBYTE pConnectionData;
DWORD dwSizeOfConnectionData;
PBYTE pUserData;
DWORD dwSizeOfUserData;
HANDLE hReserved;
GUID guidConnectionId;
BOOL isVpn;
} PPP_EAP_INPUT, *PPPP_EAP_INPUT;
成員
dwSizeInBytes
以位元組為單位指定 PPP_EAP_INPUT 結構的大小。 這個成員的值可用來區分這個 結構的目前和未來版本。
fFlags
指定符合驗證程序資格的下列零個或多個旗標。
fAuthenticator
指定驗證通訊協定是在伺服器或客戶端上運作。 TRUE 值表示驗證通訊協定在伺服器上以驗證器的形式運作。 FALSE 值表示驗證通訊協定正在用戶端上運作,因為要驗證的程式。
pwszIdentity
識別要求驗證之使用者的 Unicode 字串指標。 此字串的格式為 domain\user 或 machine\user。
如果驗證通訊協議能夠從其他來源衍生使用者的身分識別,例如憑證,它應該確認衍生的身分識別符合 pwszIdentity 的值。
pwszPassword
包含用戶帳戶密碼的 Unicode 字串指標。 只有在 fAuthenticator 為 FALSE 時才能使用。 此成員可以是 NULL。
bInitialId
指定 DLL 所傳送之初始 EAP 封包的識別碼。 每個後續要求封包的此值都會遞增一個。
pUserAttributes
RAS_AUTH_ATTRIBUTE 結構的陣列指標。 陣列是由具有 raatMinimum 值之 raaType 成員的結構終止, (請參閱RAS_AUTH_ATTRIBUTE_TYPE) 。 在 RasEapBegin 呼叫期間,此陣列包含描述目前撥入使用者的屬性。 當 fAuthenticationComplete 成員為 TRUE 時,此陣列可能包含驗證提供者所傳回的屬性。
fAuthenticationComplete
指定布爾值,指出驗證提供者是否已驗證使用者。 TRUE 值表示驗證完成。 檢查 dwAuthResultCode 成員,以判斷驗證是否成功。 如果驗證通訊協定未使用驗證提供者,請忽略此成員。
dwAuthResultCode
指定驗證提供者驗證程序的結果。 成功驗證會導致 NO_ERROR。 dwAuthResultCode 的驗證失敗碼只能來自 Winerror.h、Raserror.h 或 Mprerror.h。 如果驗證通訊協定未使用驗證提供者,請忽略此欄位。
hTokenImpersonateUser
針對要求驗證的使用者處理模擬令牌。 此成員只在用戶端有效。 如需模擬令牌的詳細資訊,請參閱 存取令牌。
fSuccessPacketReceived
指定驗證成功。 如果用戶端收到網路控制通訊協定 (NCP) 封包,則 RAS 會將此成員設定為 TRUE ,即使用戶端尚未收到 EAP 成功封包也一樣。 FALSE 值表示未收到 NCP 封包。
EAP 成功封包是未認可的封包。 因此,伺服器可能會遺失且不會重新傳送。 在此情況下,收到 NCP 封包表示驗證成功,因為伺服器已移至 PPP 的 NCP 階段。
只檢查用戶端上的這個成員。
fDataReceivedFromInteractiveUI
指定是否可從互動式使用者介面取得資訊。 預設值為 FALSE。 當使用者從驗證通訊協定的互動式使用者介面結束時,RAS 會將此成員設定為 TRUE 。
pDataFromInteractiveUI
從驗證通訊協定互動式使用者介面接收之數據的指標。 如果 fDataReceivedFromInteractiveUI 成員為 TRUE,而且互動式使用者介面確實傳回數據,則此指標為非 NULL。 否則,此指標為 NULL。
如果為非 NULL,驗證通訊協議應該在自己的記憶體空間中建立數據的複本。 RAS 會從傳遞 PPP_EAP_INPUT 結構之呼叫傳回時釋放此數據所佔用的記憶體。 若要釋放記憶體,RAS 會呼叫 RasEapFreeMemory 函式 。
dwSizeOfDataFromInteractiveUI
指定 pDataFromInteractiveUI 所指向之數據的大小,以位元組為單位。 如果未從互動式使用者介面傳回任何數據,則此成員為零。
pConnectionData
從驗證通訊協定的組態使用者介面接收之連線數據的指標。 只有在 RasEapBegin 中傳遞PPP_EAP_INPUT結構時,才能使用此數據。 呼叫 RasEapMakeMessage 時無法使用。
驗證通訊協議應該在自己的記憶體空間中複製此數據。 RAS 會從傳遞 PPP_EAP_INPUT 結構之呼叫傳回時釋放此數據所佔用的記憶體。 若要釋放記憶體,RAS 會呼叫 RasEapFreeMemory 函式 。
如果驗證通訊協議的設定使用者介面未傳回任何數據,則此成員為 NULL。
dwSizeOfConnectionData
指定 pConnectionData 所指向之數據的大小,以位元組為單位。 如果 pConnectionData 為 NULL,則此成員為零。
pUserData
從用戶端電腦上驗證通訊協定 的 RasEapGetIdentity 函式收到的用戶數據的指標。 如果驗證通訊協定未實作 RasEapGetIdentity,此成員會指向此使用者登錄中的數據。
只有在 RasEapBegin 中傳遞PPP_EAP_INPUT結構時,才能使用此數據。 呼叫 RasEapMakeMessage 時無法使用。
驗證通訊協議應該在自己的記憶體空間中複製此數據。 RAS 會從傳遞 PPP_EAP_INPUT 結構之呼叫傳回時釋放此數據所佔用的記憶體。
如果未實作 RasEapGetIdentity 函式或未傳回任何數據,且登錄中使用者沒有數據,則此成員為 NULL。
dwSizeOfUserData
指定 pUserData 所指向之數據的大小,以位元組為單位。 如果 pUserData 為 NULL,則此成員為零。
hReserved
此成員已保留。
guidConnectionId
isVpn
備註
PPP_EAP_INPUT結構是由 RAS 傳遞至驗證通訊協定,以呼叫 RasEapBegin 和 RasEapMakeMessage。
RasEapBegin 函式會使用 PPP_EAP_INPUT 結構的 pwszIdentity 和 pwszPassword 成員來取得用戶資訊。 pwszPassword 成員只有在 fAuthenticator 成員為 FALSE 時才為非 NULL,也就是說,驗證通訊協定是在用戶端計算機上執行。
如果驗證通訊協定使用驗證提供者,例如Radius或 Windows 2000 網域驗證,則會使用下列成員來與驗證提供者進行介面:
pUserAttributesfAuthenticationCompletedwAuthResultCode 注意,只有在 fAuthenticator 為 TRUE 時,才會傳遞RAS_AUTH_ATTRIBUTE結構的陣列。 此陣列包含目前的會話資訊,例如埠識別碼和本機IP位址。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | raseapif.h |