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


Последовательность вызовов API-супликанта

В этом разделе представлена определенная последовательность вызовов для api-участника.

Общие сведения о последовательности вызовов API-супликанта

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

  • Приложение вызывает EapHostPeerBeginSession с данными конфигурации EAPHost и пользовательскими данными. Успешный вызов возвращает дескриптор сеанса EAP_SESSION_HANDLE.
  • Каждый пакет, полученный запрашивающим, обрабатывается вызовом EapHostPeerProcessReceivedPacket. Затем запрашивающий вызывает функцию, соответствующую коду действия, возвращаемого функцией.
  • Если код действия EapHostPeerResponseSend, запрашивающий вызывает EapHostPeerGetSendPacket, чтобы получить ответ, который будет отправлен в аутентификатор.
  • Если во время сеанса код действия, возвращенный запросу, EapHostPeerResponseRespond, он указывает, что доступны атрибуты EAP. Затем запрашивающий вызывает EapHostPeerGetResponseAttributes, чтобы получить их. Эти атрибуты содержат дополнительные данные, используемые во время процесса проверки подлинности. После завершения обработки атрибутов, которые он вызывает, EapHostPeerSetResponseAttributes, которые обновляют данные. Эта функция возвращает код действия, определяющий следующее действие участника.
  • Если код действия EapHostPeerResponseInvokeUI запрашивающий вызывает диалоговое окно пользовательского интерфейса для получения интерактивных данных от пользователя, например учетных данных или сведений об удостоверениях. См. сведения о взаимодействии пользователей с потоком вызовов API-супликанта ниже.
  • Если код действия EapHostPeerResponseResult, он указывает, что результаты сеанса проверки подлинности доступны запрашивателю. Затем запрашивающий вызывает EapHostPeerGetResult, чтобы получить результаты. Независимо от того, указывают ли результаты на успех или сбой, запрашивающий вызывает EapHostPeerEndSession. В случае сбоя повторная проверка подлинности может быть выполнена путем открытия другого сеанса с EAPHost и предоставления нового удостоверения или повторной попытки проверки подлинности с исходным удостоверением.

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

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

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

  1. Запрашивающий получает текущий контекст пользовательского интерфейса путем вызова EapHostPeerGetUIContext.

  2. Затем запроситель отправляет данные контекста пользовательского интерфейса в запросный процесс пользовательского интерфейса.

    Заметка

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

     

  3. Если запрашивающий хочет отрисовку пользовательского интерфейса сам по себе, он вызывает функцию EapHostPeerQueerQueerInteractiveUIInputFields, чтобы получить поля ввода для создаваемых интерактивных компонентов пользовательского интерфейса. В противном случае он следует традиционной модели вызова интерактивного пользовательского интерфейса метода путем вызова EapHostPeerInvokeInteractiveUI

    Заметка

    Если возвращается EAP_E_EAPHOST_METHOD_OPERATION_NOT_SUPPORTED, то запрос должен следовать традиционной модели вызова интерактивного пользовательского интерфейса метода путем вызова EapHostPeerInvokeInteractiveUI. Если возникла ошибка, EapHostPeerQueryInteractiveUIInputFields вернет код возврата, отличный от NULL.

     

  4. Вызывает ли запрос EapHostPeerQueryInteractiveUIInputFields или EaphostPeerInvokeInteractiveUI процесс пользовательского интерфейса передает существующие данные контекста и загружает Eappcfg.dll. Соответствующий пользовательский интерфейс создается для сбора новых данных. Новые данные контекста пользовательского интерфейса, которые теперь могут содержать входные данные пользователя, копируются, а старые данные контекста выпускаются с вызовом EapPeerFreeMemory.

  5. Процесс пользовательского интерфейса возвращает новые данные контекста запросу, который вызывает EapHostPeerSetUIContext, чтобы задать его.

последовательности вызовов API одноранговых методов

последовательности вызов ов API метода Authenticator

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

EAPHost Supplicants