PPP_EAP_OUTPUT 结构 (raseapif.h)
身份验证协议使用 PPP_EAP_OUTPUT 结构,在从 RasEapMakeMessage 的调用返回时将请求和状态信息传达给连接管理器。
语法
typedef struct _PPP_EAP_OUTPUT {
DWORD dwSizeInBytes;
PPP_EAP_ACTION Action;
DWORD dwAuthResultCode;
RAS_AUTH_ATTRIBUTE *pUserAttributes;
BOOL fInvokeInteractiveUI;
PBYTE pUIContextData;
DWORD dwSizeOfUIContextData;
BOOL fSaveConnectionData;
PBYTE pConnectionData;
DWORD dwSizeOfConnectionData;
BOOL fSaveUserData;
PBYTE pUserData;
DWORD dwSizeOfUserData;
NgcTicketContext *pNgcKerbTicket;
BOOL fSaveToCredMan;
} PPP_EAP_OUTPUT, *PPPP_EAP_OUTPUT;
成员
dwSizeInBytes
指定此结构的大小。
Action
指定 PPP_EAP_ACTION 值。 连接管理器代表身份验证协议执行此操作。
dwAuthResultCode
指定身份验证是否成功。 dwAuthResultCode 的任何非零值都指示失败。 失败代码必须来自 Winerror.h、Raserror.h 或 Mprerror.h。 仅当 Action 成员的值为 EAPACTION_Done 或 EAPACTION_SendAndDone 时,此成员才有效。
pUserAttributes
指向 可选RAS_AUTH_ATTRIBUTE 结构数组的指针。 数组由具有 raaType 成员的结构终止,该成员的 raatMinimum 值为 raatMinimum (请参阅 RAS_AUTH_ATTRIBUTE_TYPE) 。
当操作EAPACTION_Authenticate时,或者当 Action 为EAPACTION_Done或EAPACTION_SendAndDone且 dwAuthResultCode 为零时,应在验证器端设置此成员。
EAPACTION_AuthenticateAction 时,数组可能包含对用户进行身份验证所需的其他属性,例如 user-password。 如果身份验证协议仅传入用户名,则 RAS 不会调用身份验证提供程序对用户进行身份验证,相反,RAS 只会传回用户的当前属性。
当 ActionEAPACTION_Done 或 EAPACTION_SendAndDone,而 dwAuthResultCode 为零时,数组可能包含要分配给用户的其他属性。 这些属性将覆盖身份验证提供程序返回的相同类型的任何属性。
身份验证协议在其 RasEapEnd 函数中释放此内存。
fInvokeInteractiveUI
指定 RAS 是否应调用身份验证协议的交互式 UI。 如果身份验证协议将此成员设置为 TRUE,则 RAS 通过调用身份验证协议提供的 RasEapInvokeInteractiveUI 函数来调用交互式 UI。
pUIContextData
指向 RAS 应在 RasEapInvokeInteractiveUI 调用中传递的上下文数据的指针。 身份验证协议应在 RasEapEnd 的实现中释放此内存。
dwSizeOfUIContextData
指定 RAS 在对 RasEapInvokeInteractiveUI 的调用中应传递的上下文数据的大小。
fSaveConnectionData
指定 RAS 是否应保存 pConnectionData 成员指向的信息。 如果 fSaveConnectionData 为 TRUE,RAS 会将数据保存在电话簿中。 仅对正在进行身份验证的进程有效。
pConnectionData
标识特定于连接的数据,即不特定于任何特定用户的数据。 如果 fSaveConnectionData 成员为 TRUE,则 RAS 会将连接数据保存在电话簿中。 身份验证协议应在调用 RasEapEnd 期间释放此数据占用的内存。
dwSizeOfConnectionData
指定 pConnectionData 成员指向的数据的大小(以字节为单位)。
fSaveUserData
指定 RAS 是否应保存 pUserData 成员指向的用户数据。 如果此参数为 TRUE,则 RAS 会将用户特定的数据保存在 注册表HKEY_CURRENT_USER下。
pUserData
指向 RAS 应在注册表中保存的用户数据的指针。 RAS 将此数据保存在 注册表HKEY_CURRENT_USER下。 身份验证协议应在调用 RasEapEnd 期间释放此内存。
dwSizeOfUserData
指定 pUserData 指向的数据的大小(以字节为单位)。
pNgcKerbTicket
fSaveToCredMan
注解
使用 RasEapMakeMessage 函数在身份验证协议和连接管理器之间传递PPP_EAP_OUTPUT结构。
身份验证协议可以使用 PPP_EAP_OUTPUT 结构返回 Microsoft 点对点加密 (MPPE) 会话密钥。 身份验证协议必须将会话密钥放置在 类型为 raatVendorSpecific 的属性的值字段中包含的子属性的值字段中, (请参阅 RAS_AUTH_ATTRIBUTE_TYPE) 。 子属性的 Vendor-ID 应为 311 (Microsoft) ,而供应商类型为 MS-MPPE-Recv-Keys (17) ,MS-MPPE-Send-Keys (16) 。 身份验证协议必须将 pUserAttributes 成员设置为指向 raatVendorSpecific 属性,并将 Action 成员设置为 EAPACTION_Done 或 EAPACTION_SendAndDone。 有关 MPPE 子属性格式的详细信息,请参阅 Microsoft 供应商特定的 RADIUS 属性。 有关属性格式的详细信息,请参阅 RAS_AUTH_ATTRIBUTE、 RAS_AUTH_ATTRIBUTE_TYPE 和 RFC 2865。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | raseapif.h |