void ConnectNewSecureNetwork(string ssid, string key, WlanClient.WlanInterface nic, Wlan.WlanAvailableNetwork network) { var log = ServiceRegistration.Get<ILogger>(); log.Info("WifiConfiguration: Building new Profile to connect to WLAN '{0}'", ssid); string profileXml = Helper.GetProfileXml(ssid, key, network.dot11DefaultAuthAlgorithm, network.dot11DefaultCipherAlgorithm); if (profileXml != null) { string error = null; try { Wlan.WlanReasonCode reasonCode = nic.SetProfile(Wlan.WlanProfileFlags.User, profileXml, true); if (reasonCode != Wlan.WlanReasonCode.Success) error = reasonCode.ToString(); } catch (Exception ex) { error = ex.Message; } if (error == null) { nic.ConnectSynchronously(Wlan.WlanConnectionMode.Profile, Wlan.Dot11BssType.Any, ssid, CONNECTION_TIMEOUT_SECONDS); } else { log.Warn("WifiConfiguration: Setting Profile for WLAN '{0}' failed: '{1}'", ssid, error); ServiceRegistration.Get<IDialogManager>().ShowDialog("[Dialogs.ErrorHeaderText]", error, DialogType.OkDialog, false, DialogButtonType.Ok); } } else { // don't know how to build profile log.Warn("WifiConfiguration: No known Mapping to create Profile '{0}' for AuthAlg: '{1}' and CipherAlg: '{2}'", ssid, network.dot11DefaultAuthAlgorithm, network.dot11DefaultCipherAlgorithm); ServiceRegistration.Get<IDialogManager>().ShowDialog("[Dialogs.ErrorHeaderText]", "Unable to build profile. Connect in Windows.", DialogType.OkDialog, false, DialogButtonType.Ok); } }
void ConnectNetwork(string ssid, WlanClient.WlanInterface nic, Wlan.WlanAvailableNetwork network) { var log = ServiceRegistration.Get<ILogger>(); if (!string.IsNullOrEmpty(network.profileName)) { try { log.Info("WifiConfiguration: Using existing Profile to connect to WLAN '{0}'", ssid); bool success = nic.ConnectSynchronously(Wlan.WlanConnectionMode.Profile, Wlan.Dot11BssType.Any, network.profileName, CONNECTION_TIMEOUT_SECONDS); if (success) FindNetworks(); else log.Warn("Connection to WLAN '{0}' failed.", ssid); } catch (Exception ex) { log.Warn("Connection to WLAN '{0}' failed: {1}", ex, ssid, ex.Message); } } else { if (network.securityEnabled) { ServiceRegistration.Get<IScreenManager>().ShowDialog("dialogWifiPassword"); } else { log.Info("WifiConfiguration: Connecting to unsecured WLAN '{0}'", ssid); nic.Connect(Wlan.WlanConnectionMode.Auto, Wlan.Dot11BssType.Any, network.dot11Ssid, 0); } } }