public LoginWindow(APIControl apiControl) { InitializeComponent(); this.apiControl = apiControl; if (Properties.Settings.Default.username != "" && Properties.Settings.Default.password != "") { emailTextBox.Text = Properties.Settings.Default.username; passwordBox.Password = DPAPIInterface.Unprotect(Properties.Settings.Default.password, null, System.Security.Cryptography.DataProtectionScope.CurrentUser); passwordConfirmHide(true); signInButton.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent)); } else if (Properties.Settings.Default.username != "") { emailTextBox.Text = Properties.Settings.Default.username; passwordConfirmHide(true); signInButton.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent)); } else { passwordConfirmHide(false); signUpButton.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent)); } initialClick = true; submitButton.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent)); }
public bool checkStoredLogin() { string username = Properties.Settings.Default.username; string password = Properties.Settings.Default.password; if (password != "") { password = DPAPIInterface.Unprotect(password, null, System.Security.Cryptography.DataProtectionScope.CurrentUser); } if (password == "" || username == "") { return(false); } try { if (signIn(username, password) == SignInResponse.SignedIn) { var getKeyResponse = getKey(); if (getKeyResponse.Result.StatusCode == HttpStatusCode.OK) { var getKeyResponseString = getKeyResponse.Result.Content.ReadAsStringAsync(); var getKeyDict = JsonConvert.DeserializeObject <Dictionary <string, string> >(getKeyResponseString.Result); if (!getKeyDict.ContainsKey("code")) { return(true); } else { return(false); } } else { return(false); } } else { return(false); } } catch (AggregateException e) { throw e; } }
private void submitButton_Click(object sender, RoutedEventArgs e) { if (emailTextBox.Text != "" && passwordBox.Password != "" && (!isSignUp || passwordBox.Password == passwordConfirmBox.Password)) { submitButton.IsEnabled = false; if (!initialClick) { submitHideButton.Visibility = Visibility.Hidden; // hide enable animation on first appearance } username = password = null; new System.Threading.Thread(() => { this.Dispatcher.Invoke(() => { Properties.Settings.Default.username = username = emailTextBox.Text; password = passwordBox.Password; Properties.Settings.Default.password = DPAPIInterface.Protect(password, null, System.Security.Cryptography.DataProtectionScope.CurrentUser); Properties.Settings.Default.Save(); }); Task <HttpResponseMessage> response = null; while (username == null || password == null) { Thread.Sleep(10); } bool hasError = false; // only create user in register if (isSignUp) { if (!apiControl.checkVersion1Login(username, password)) { response = apiControl.signUp(username, password); var signUpResponseString = response.Result.Content.ReadAsStringAsync(); try { var jsonDict = JsonConvert.DeserializeObject <Dictionary <string, string> >(signUpResponseString.Result); if (jsonDict.ContainsKey("code") && jsonDict["code"] == "3") { this.Dispatcher.Invoke(() => { confirmEmailLabel.Content = "Password must contain a capital letter, contain a\nnumber, and contain a special character."; confirmEmailLabel.Visibility = Visibility.Visible; submitButton.IsEnabled = true; }); hasError = true; } } catch (AggregateException ae) { } } } if (!hasError) { try { APIControl.SignInResponse signInResponse = apiControl.signIn(username, password); if (signInResponse == APIControl.SignInResponse.AccountNotFound) { this.Dispatcher.Invoke(() => { confirmEmailLabel.Content = "Incorrect email or password."; confirmEmailLabel.Visibility = Visibility.Visible; submitButton.IsEnabled = true; }); } else if (signInResponse == APIControl.SignInResponse.AwaitingVerification) { this.Dispatcher.Invoke(() => { confirmEmailLabel.Content = "Please confirm email."; confirmEmailLabel.Visibility = Visibility.Visible; submitButton.IsEnabled = true; }); } else { var getKeyResponse = apiControl.getKey(); var getKeyResponseString = getKeyResponse.Result.Content.ReadAsStringAsync(); if (getKeyResponse.Result.StatusCode == System.Net.HttpStatusCode.OK) { var testDict = JsonConvert.DeserializeObject <Dictionary <string, string> >(getKeyResponseString.Result); if (testDict.ContainsKey("code") && testDict["code"] == "1") { this.Dispatcher.Invoke(() => { confirmEmailLabel.Content = "Please confirm email."; confirmEmailLabel.Visibility = Visibility.Visible; submitButton.IsEnabled = true; }); } // else finished registration and subscription else if (!testDict.ContainsKey("code")) { this.Dispatcher.Invoke(() => { isSubscribed = true; emailLabel.Content = Properties.Settings.Default.username; confirmEmailLabel.Visibility = Visibility.Hidden; //wizardPages1.SelectedTab = tabPage5; Dispatcher.BeginInvoke((Action)(() => loginTabControl.SelectedIndex = 2)); submitButton.IsEnabled = true; }); } else { this.Dispatcher.Invoke(() => { isSubscribed = false; confirmEmailLabel.Visibility = Visibility.Hidden; emailLabel.Content = Properties.Settings.Default.username; initBrowser(); //wizardPages1.SelectedTab = tabPage5; // go to EULA after sign in page Dispatcher.BeginInvoke((Action)(() => loginTabControl.SelectedIndex = 2)); submitButton.IsEnabled = true; }); } } else if (getKeyResponse.Result.StatusCode == System.Net.HttpStatusCode.Unauthorized) { var testDict = JsonConvert.DeserializeObject <Dictionary <string, string> >(getKeyResponseString.Result); if (testDict.ContainsKey("code") && testDict["code"] == "1") { this.Dispatcher.Invoke(() => { confirmEmailLabel.Content = "Please confirm email."; confirmEmailLabel.Visibility = Visibility.Visible; submitButton.IsEnabled = true; }); } else { this.Dispatcher.Invoke(() => { confirmEmailLabel.Content = "Incorrect email or password."; confirmEmailLabel.Visibility = Visibility.Visible; submitButton.IsEnabled = true; }); } } else if (getKeyResponse.Result.StatusCode == System.Net.HttpStatusCode.BadRequest) { this.Dispatcher.Invoke(() => { confirmEmailLabel.Content = "Account does not include desktop access.\nUpgrade to unlimited."; confirmEmailLabel.Visibility = Visibility.Visible; submitButton.IsEnabled = true; }); } } } catch (AggregateException ae) { MessageBox.Show("Can't connect to internet."); this.Dispatcher.Invoke(() => { submitButton.IsEnabled = true; }); } } }).Start(); } // else if passwords don't match else if (isSignUp && passwordBox.Password != "" && passwordBox.Password != passwordConfirmBox.Password) { confirmEmailLabel.Content = "Passwords do not match."; confirmEmailLabel.Visibility = Visibility.Visible; submitButton.IsEnabled = true; } else { submitButton.IsEnabled = true; } initialClick = false; }