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 数据包的标识符。 对于每个后续请求数据包,此值递增 1。
pUserAttributes
指向 RAS_AUTH_ATTRIBUTE 结构的数组的指针。 数组由具有 raatMinimum 值为 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) 数据包,即使客户端尚未收到 EAP 成功数据包,RAS 会将此成员设置为 TRUE 。 值为 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
注解
在调用 RasEapBegin 和 RasEapMakeMessage 时,RAS 会将PPP_EAP_INPUT结构传递给身份验证协议。
PPP_EAP_INPUT 结构的pwszIdentity 和 pwszPassword 成员由 RasEapBegin 函数用于获取用户信息。 仅当 fAuthenticator 成员为 FALSE 时,pwszPassword 成员为非 NULL,即身份验证协议在客户端计算机上运行。
如果身份验证协议使用身份验证提供程序(如 Radius 或 Windows 2000 域身份验证),则以下成员用于与身份验证提供程序进行交互:
pUserAttributesfAuthenticationCompletedwAuthResultCode 请注意,仅当 fAuthenticator 为 TRUE 时,才会传递RAS_AUTH_ATTRIBUTE结构的数组。 此数组包含当前会话信息,例如端口标识符和本地 IP 地址。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | raseapif.h |