Поделиться через


Последовательность вызовов API метода Tunnel

В этом разделе рассматривается последовательность вызовов API для методов Tunnel

Общие сведения о последовательности вызовов метода Tunnel

Когда Запрашивающий получает запрос на получение удостоверения пользователя и данных пользователя, обычно выполняется следующий поток вызова API.

  • Запрашивающий вызывает EapHostPeerProcessReceivedPacket на EapHost, чтобы обработать пакет, полученный от аутентификатора.
  • После обработки этого пакета EAPHost определяет его как пакет IdentityRequest и вызывает метод EapPeerGetIdentity в туннеле, чтобы получить удостоверение пользователя, используемое для проверки подлинности.
  • Если метод туннеля должен получить удостоверение пользователя из внутреннего метода, он вызывает EAPHostPeerGetIdentity на внутреннем EAPHost, который, в свою очередь, вызывает EapPeerGetIdentity для внутреннего метода.

Взаимодействие пользователя с потоком вызова API методов туннеля

В некоторых случаях, когда удостоверение недоступно или пользователь должен предоставить дополнительные сведения, метод Eap создает диалоговое окно пользовательского интерфейса для запрашивающего.

В таких случаях для получения сведений непосредственно от пользователя обычно выполняется следующая последовательность вызовов.

  • Метод Tunnel Eap возвращает код действия для вызова пользовательского интерфейса в EapHost. Запрашивающий вызывает EapHostPeerGetUIContextдля получения сведений о контексте текущего пользовательского интерфейса для диалогового окна пользовательского интерфейса.

  • Затем запрашивающий вызывает EapHostPeerInvokeInteractiveUI. Эта функция использует сведения контекста пользовательского интерфейса для создания интерактивного пользовательского интерфейса, который используется для получения учетных данных от пользователя. Процесс пользовательского интерфейса загружает Eappcfg.dll и получает указатели на EapPeerInvokeInteractiveUI и EapPeerFreeMemory.

    Примечание

    Процесс пользовательского интерфейса обычно собирает пользовательский интерфейс или обрабатывает интерактивный пользовательский интерфейс и отделен от запрашивающего процесса. Разделение этих двух процессов не является обязательным требованием EAPHost, но это позволяет процессу пользовательского интерфейса взаимодействовать с рабочим столом.

     

  • EapHost вызывает EapPeerInvokeIdentityUI в методе туннеля для получения сведений об удостоверениях пользователя.

  • Чтобы получить удостоверение пользователя из внутреннего метода, метод туннеля вызывает EapHostPeerInvokeIdentityUI на внутреннем EAPHost.

  • Внутренний EAPHost вызывает EapPeerInvokeIdentityUI во внутреннем методе для вызова пользовательского интерфейса удостоверения пользователя.

  • EapHostPeerSetUIContext предоставляет новые или обновленные сведения о контексте пользовательского интерфейса для однорангового метода EAP, загруженного в EAPHost после создания пользовательского интерфейса.

На следующей схеме описана последовательность вызовов API для методов Tunnel

Последовательность вызовов API методов tunnel

Последовательность вызовов EAPHost

Последовательность вызовов API запрашивающего

Справочник по API запрашивающего приложения EAPHost