Tunnel 方法 API 调用序列
本主题介绍 Tunnel 方法的 API 调用序列
Tunnel 方法调用序列概述
当 Supplicant 获取用户标识和用户数据请求时,通常会发生以下 API 调用流。
- Supplicant 对 EapHost 调用 EapHostPeerProcessReceivedPacket,以处理从验证器接收的数据包。
- 处理此数据包后,EAPHost 将其确定为 IdentityRequest 数据包,并对 Tunnel 方法调用 EapPeerGetIdentity,以获取用于身份验证的用户标识。
- 如果 Tunnel 方法需要从内部方法获取用户标识,它将对内部 EAPHost 调用 EAPHostPeerGetIdentity,后者又对内部方法调用 EapPeerGetIdentity。
用户与 Tunnel 方法 API 调用流交互
在某些情况下,当标识不可用或用户必须提供其他信息时,Eap 方法在 supplicant 上弹出用户界面对话框。
在这种情况下,通常执行以下调用序列来直接从用户那里获取信息。
Tunnel Eap 方法返回操作代码以对 EapHost 调用 UI。 Supplicant 调用 EapHostPeerGetUIContext 以获取用户界面对话框的当前用户界面上下文信息。
然后,Supplicant 调用 EapHostPeerInvokeInteractiveUI。此函数使用 UI 上下文信息弹出交互式用户界面,该界面用于从用户那里获取凭据信息。 UI 进程加载 Eappcfg.dll 并获取指向 EapPeerInvokeInteractiveUI 和 EapPeerFreeMemory 的指针。
注意
UI 进程通常收集 UI 或处理交互式 UI,并且独立于 Supplicant 进程。 分离这两个进程不是 EAPHost 的要求,但这样做的优点是允许 UI 进程与桌面交互。
EapHost 对 tunnel 方法调用 EapPeerInvokeIdentityUI 以获取用户标识信息。
为了从内部方法获取用户标识,tunnel 方法对内部 EAPHost 调用 EapHostPeerInvokeIdentityUI。
内部 EAPHost 对内部方法调用 EapPeerInvokeIdentityUI 来调用用户标识 UI。
EapHostPeerSetUIContext 为弹出 UI 后在 EAPHost 上加载的 EAP 对等方法提供新的或更新的 UI 上下文信息。
下图说明了 Tunnel 方法的 API 调用序列
相关主题