Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
An interactive UI for the authentication protocol may also be implemented. The interactive UI allows the authentication protocol to obtain additional information from the user as needed during the course of the authentication session.
The interactive UI can be implemented in the same DLL as the authentication protocol, or in a separate DLL. Also, the DLL that implements the interactive UI can support more than one authentication protocol. The path to the DLL for the interactive UI is stored in the RAS_EAP_VALUENAME_INTERACTIVEUIregistry value, under the key for the authentication protocol. For more information about creating this registry value, see EAP Installation.
The DLL for the interactive UI should export entry points for the following functions.
The interactive UI must support WM_COMMAND messages where LOWORD( wParam) equals IDCANCEL.
To display the interactive UI, the authentication protocol should set the fInvokeInteractiveUImember of the PPP_EAP_OUTPUTstructure to TRUE. The authentication protocol may optionally set the pUIContextDataand dwSizeOfUIContextDatamembers as well. RAS uses the values of these members to pass context data to the interactive UI. The authentication protocol returns this PPP_EAP_OUTPUTstructure as a parameter in the RasEapMakeMessagefunction.
RAS invokes the interactive UI by calling RasEapInvokeInteractiveUI. RAS passes the authentication protocol a pointer to the data returned by the interactive UI in the subsequent call to RasEapMakeMessage. The pointer is passed as a member of a PPP_EAP_INPUTstructure. After RasEapMakeMessagereturns, RAS calls RasEapFreeMemoryto free the memory occupied by the information. Therefore, the authentication protocol should copy the information into a private memory buffer during the call to RasEapMakeMessage.