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_DoneEAPACTION_SendAndDone 时,此成员才有效。

pUserAttributes

指向 可选RAS_AUTH_ATTRIBUTE 结构数组的指针。 数组由具有 raaType 成员的结构终止,该成员的 raatMinimum 值为 raatMinimum (请参阅 RAS_AUTH_ATTRIBUTE_TYPE) 。

当操作EAPACTION_Authenticate时,或者当 Action 为EAPACTION_DoneEAPACTION_SendAndDonedwAuthResultCode零时,应在验证器端设置此成员。

EAPACTION_AuthenticateAction 时,数组可能包含对用户进行身份验证所需的其他属性,例如 user-password。 如果身份验证协议仅传入用户名,则 RAS 不会调用身份验证提供程序对用户进行身份验证,相反,RAS 只会传回用户的当前属性。

ActionEAPACTION_DoneEAPACTION_SendAndDone,而 dwAuthResultCode 为零时,数组可能包含要分配给用户的其他属性。 这些属性将覆盖身份验证提供程序返回的相同类型的任何属性。

身份验证协议在其 RasEapEnd 函数中释放此内存。

fInvokeInteractiveUI

指定 RAS 是否应调用身份验证协议的交互式 UI。 如果身份验证协议将此成员设置为 TRUE,则 RAS 通过调用身份验证协议提供的 RasEapInvokeInteractiveUI 函数来调用交互式 UI。

pUIContextData

指向 RAS 应在 RasEapInvokeInteractiveUI 调用中传递的上下文数据的指针。 身份验证协议应在 RasEapEnd 的实现中释放此内存。

dwSizeOfUIContextData

指定 RAS 在对 RasEapInvokeInteractiveUI 的调用中应传递的上下文数据的大小。

fSaveConnectionData

指定 RAS 是否应保存 pConnectionData 成员指向的信息。 如果 fSaveConnectionDataTRUE,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_DoneEAPACTION_SendAndDone。 有关 MPPE 子属性格式的详细信息,请参阅 Microsoft 供应商特定的 RADIUS 属性。 有关属性格式的详细信息,请参阅 RAS_AUTH_ATTRIBUTERAS_AUTH_ATTRIBUTE_TYPERFC 2865

注意 格式化加密密钥的属性时,强烈建议使用 MSCHAPv2 及其 MS-MPPE-Recv-Keys 和 MS-MPPE-Send-Keys,它们创建 强加密 ,而不是 MSCHAPv1 及其 MS-CHAP-MPPE-Keys。
 

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 raseapif.h

另请参阅

EAP 结构

可扩展身份验证协议参考

PPP_EAP_ACTION

RAS_AUTH_ATTRIBUTE

RasEapInvokeInteractiveUI

RasEapMakeMessage