es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ConnectAsync de Windows.Devices.WiFi.WiFiAdapter no funciona si no he iniciado sesión.

Problema:

Como el título ya indica, la conexión a una red mediante Windows.Devices.WiFi.WiFiAdapter parece no funcionar si aún no he iniciado sesión en el PC.

¿Alguien tiene alguna idea de por qué no funciona? ¿O si hay alguna otra solución alternativa?

Antecedentes:

He creado una aplicación de consola que utiliza la API de Windows.Devices.WiFi.Adapter para conectarse automáticamente a nuestra red inalámbrica en determinadas situaciones, como en el arranque y los inicios de sesión.

Me conecto utilizando el siguiente código:

switch (available_network.SecuritySettings.NetworkAuthenticationType)
{
case NetworkAuthenticationType.Open80211:
case NetworkAuthenticationType.None:
case NetworkAuthenticationType.Unknown:
task_connect = Program.MainAdapter.ConnectAsync(available_network, reconnectionKind).AsTask();
break;
default:
task_connect = Program.MainAdapter.ConnectAsync(available_network, reconnectionKind, Program.Credentials).AsTask();
break;
}

La aplicación funciona bien cuando he iniciado sesión en Windows 10, pero no funciona cuando cierro sesión o cuando inicio una línea de comandos como otro usuario. Esto limita gravemente las posibilidades de lo que puedo hacer con ella.
Intenté configurarla para que inicie sesión al arrancar mediante una tarea programada (usando la cuenta del sistema) pero, aunque la aplicación se ejecuta, puede encontrar redes inalámbricas e intenta conectarse, siempre falla con el estado NetworkNotAvailable.

He probado dos computadoras. Ambas tienen la misma versión de sistema operativo: 21H1 (19043.1348)

Archivos fuente:
Mi aplicación se basa en gran medida (copiada de) https://github.com/Microsoft/Windows-iotcore-samples/blob/master/Samples/WiFiConnector/CS/README.md

Mis archivos fuente están aquí: https://github.com/henricbjork2liu/wifish

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para conectarse a una red Wi-Fi utilizando Windows.Devices.WiFi.WiFiAdapter

    El problema aquí es que la conexión a la red Wi-Fi utilizando Windows.Devices.WiFi.WiFiAdapter parece no funcionar si el usuario no ha iniciado sesión en el PC. Hay algunos métodos que se pueden probar para resolver este problema.

    Una solución es crear una tarea programada que ejecute la aplicación de consola al arranque con los permisos más altos y ejecutándola como cuenta del sistema. Esto permitirá que la aplicación se ejecute en segundo plano incluso si el usuario no ha iniciado sesión.

    Otra solución es cambiar a utilizar una API diferente como la API de Wifi nativa, que permite conectarse a redes Wi-Fi sin requerir que el usuario haya iniciado sesión.

    También es importante comprobar si la red Wi-Fi requiere un nombre de usuario y contraseña para conectarse y asegurarse de que las credenciales correctas se estén utilizando en la aplicación.

    Finalmente, es importante asegurarse de que el adaptador Wi-Fi de la computadora esté habilitado y funcionando correctamente, ya que esto también puede causar problemas de conexión.

    En general, cambiar a la API de Wifi nativa o crear una tarea programada al inicio con los permisos más altos y ejecutando como cuenta del sistema son las dos soluciones más viables para conectarse a redes Wi-Fi utilizando Windows.Devices.WiFi.WiFiAdapter cuando el usuario no ha iniciado sesión en el PC.

Comments are closed.