Control del evento de autenticación de punto de acceso
Windows 8, Windows 8.1 y Windows 10 desencadenar el evento de autenticación del punto de acceso cuando detecta un portal cautivo que admite itinerancia del proveedor de servicios de Internet inalámbrico (WISPr).
Cuando se produce el evento, la aplicación receptora debe llamar inmediatamente a la función Windows.Networking.NetworkOperator.HotspotAuthentication.TryGetAuthenticationContext mediante el token de evento que se proporciona como argumento para el controlador de eventos. Esta función devuelve un objeto que administra el intento de autenticación de zona activa. En caso de que se produzca un error en la función, el controlador de eventos debe salir sin realizar ninguna acción adicional.
Las propiedades del objeto permiten que la aplicación recupere los siguientes elementos:
SSID de la red inalámbrica.
Detalles sobre el adaptador de red que está conectado al punto de acceso.
Dirección URL que contiene el mensaje WISPr.
Carga XML del mensaje WISPr.
Dirección URL de autenticación a la que se proporcionan las credenciales.
Existen otras API para recuperar los siguientes elementos:
El BSSID de la red inalámbrica (consulte el espacio de nombres Windows.Networking.Connectivity).
Parámetros DHCP de la red (consulta Win32 y COM para aplicaciones para UWP).
Al usar esta información y cualquier otra información que la aplicación necesite obtener del sistema local o de la red, se pueden generar credenciales. El objeto también contiene métodos que permiten que la aplicación continúe o complete la autenticación de punto de acceso.
Las secciones siguientes están disponibles en este tema:
Emisión de credenciales
En el caso más sencillo, la aplicación genera credenciales basadas en la información que tiene o puede recuperar. Por ejemplo, se genera un nombre de usuario y una contraseña mediante la información de la carga de WISPr e información sobre el adaptador de red.
Después de realizar las acciones necesarias para generar o obtener credenciales, la aplicación llama al método IssueCredentials en el objeto HotspotAuthenticationContext . Este método permite que la aplicación proporcione lo siguiente:
Parámetro UserName de WISPr
Parámetro WISPr Password
Parámetros arbitrarios no estándar que se van a incluir en la respuesta WISPr
Comportamiento en caso de error
Si el servidor rechaza las credenciales proporcionadas por la aplicación, Windows se desconecta de la red y no vuelve a intentar una conexión en la sesión de usuario actual. La marca final permite a la aplicación indicar que si las credenciales no son correctas, Windows nunca debe reintentar automáticamente una conexión mediante este perfil.
Hay dos variaciones de esta API. El método IssueCredentials pasa los parámetros a Windows y, a continuación, devuelve al instante. Esta API no proporciona el resultado del intento de autenticación. El método IssueCredentialsAsync, introducido en Windows 8.1, es una versión asincrónica que permite a las aplicaciones recuperar el resultado del intento de autenticación.
Anulación de la autenticación
Si la aplicación detecta que no puede generar credenciales para la red actual (porque los contratos móviles han cambiado, la información no está disponible o por otro motivo), debe llamar al método AbortAuthentication en el objeto HotspotAuthenticationContext .
Windows se desconecta de la red y no vuelve a conectar una conexión en la sesión de usuario actual. Esta función acepta una marca que indica que Windows nunca debe reintentar automáticamente una conexión mediante este perfil.
Nota Este método no quita el perfil del sistema y la aplicación se puede solicitar de nuevo credenciales si el usuario intenta conectarse manualmente a la red. Si el perfil se quita completamente, la aplicación debe proporcionar un nuevo archivo de aprovisionamiento que quite el perfil asociado.
Usar métodos de autenticación alternativos
Si la aplicación se puede autenticar mediante un método distinto de WISPr, puede hacerlo. Después de autenticarse correctamente en la red mediante un método alternativo, debe completar la conexión llamando al método SkipAuthentication en el objeto HotspotAuthenticationContext . Cuando se llama a este método, Windows vuelve a detectar la conectividad a Internet, lo que ayuda a la interfaz de usuario (UI) a reflejar correctamente el estado autenticado.
Nota El evento HotspotAuthentication no se invoca para zonas activas que no anuncian compatibilidad con el protocolo WISPr. Sin embargo, esto permite a una aplicación elegir un protocolo diferente para usarlo en respuesta o usar una versión personalizada de WISPr si es necesario.
Interacción con el usuario
Si se requiere la interacción del usuario antes de que la autenticación pueda continuar, la aplicación debe llamar al método TriggerAttentionRequired en el objeto HotspotAuthenticationContext . Este método es útil en las siguientes circunstancias:
El usuario ha elegido no almacenar las credenciales en la aplicación y debe iniciar sesión.
Al completar la conexión se le cobrará la tarjeta de crédito del usuario u otra cuenta; por lo tanto, se requiere consentimiento antes de continuar.
No hay crédito disponible en la cuenta del usuario y se requiere una nueva compra.
Este método no completa la autenticación. Cuando se invoca este método, la aplicación solicita que se abra en primer plano mediante los argumentos especificados. El token de evento se debe pasar a la aplicación en primer plano para que pueda recuperar de nuevo el objeto HotspotAuthenticationContext y completar la autenticación mediante uno de los otros tres métodos.
No se garantiza que la solicitud de la aplicación se abra en primer plano. El evento HotspotAuthentication puede producirse debido a una conexión automática mientras el equipo está en espera conectada. La aplicación se inicia solo cuando el equipo ya no está en modo de espera conectado, se ha desbloqueado y sigue conectado a la red inalámbrica. Dado que esto retrasa el acceso a Internet hasta que el usuario desbloquea el equipo, este estado debe evitarse siempre que las credenciales se puedan generar automáticamente.