대화형 사용자 인터페이스

인증 프로토콜을 구현하는 공급업체는 프로토콜에 대한 대화형 UI(사용자 인터페이스)를 제공할 수도 있습니다. 대화형 UI를 사용하면 인증 프로토콜이 인증 세션 중에 필요에 따라 사용자로부터 추가 정보를 얻을 수 있습니다.

대화형 UI는 인증 프로토콜과 동일한 DLL 또는 별도의 DLL에서 구현할 수 있습니다. 또한 대화형 UI를 구현하는 DLL은 둘 이상의 인증 프로토콜을 지원할 수 있습니다. 대화형 UI에 대한 DLL 경로는 인증 프로토콜의 키 아래에 RAS_EAP_VALUENAME_INTERACTIVEUI 레지스트리 값에 저장됩니다. 이 레지스트리 값을 만드는 방법에 대한 자세한 내용은 EAP 설치를 참조하세요.

대화형 UI의 DLL은 다음 함수에 대한 진입점을 내보내야 합니다.

RasEapInvokeInteractiveUI
RasEapFreeMemory

대화형 사용자 인터페이스는 LOWORD(wParam)가 IDCANCEL과 같은 WM_COMMAND 메시지를 지원해야 합니다.

대화형 UI를 표시하려면 인증 프로토콜이 PPP_EAP_OUTPUT 구조체의 fInvokeInteractiveUI 멤버를 TRUE설정해야 합니다. 인증 프로토콜은 필요에 따라 pUIContextData 및 dwSizeOfUIContextData 멤버도 TRUE설정할 있습니다. 인증 서비스는 이러한 멤버의 값을 사용하여 컨텍스트 데이터를 대화형 UI에 전달합니다. 인증 프로토콜은 PPP_EAP_OUTPUT 구조를 RasEapMakeMessage 함수의 매개 변수로 반환합니다.

인증 서비스는 RasEapInvokeInteractiveUI를 호출하여 대화형 UI를 호출합니다. 그런 다음, 서비스는 RasEapMakeMessage에 대한 후속 호출에서 대화형 UI에서 반환된 데이터에 대한 포인터를 인증 프로토콜에 전달합니다. 포인터는 PPP_EAP_INPUT 구조체의 멤버로 전달됩니다. RasEapMakeMessage가 반환되면 서비스는 RasEapFreeMemory를 호출하여 정보가 차지하는 메모리를 해제합니다. 따라서 인증 프로토콜은 RasEapMakeMessage를 호출하는 동안 개인 메모리 버퍼에 정보를 복사해야 합니다.