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 调用序列

Tunnel 方法 API 调用序列

EAPHost 调用序列

Supplicant API 调用序列

EAPHost Supplicant API 参考