/// <summary> /// Prüfen der Daten für die Registrierung und dann speichern der Daten lokal wie in der Datenbank /// Voreinstellung einer Benutzerdaten, sodass ein bessere Userfeeling entsteht /// </summary> /// <param name="sender"></param> /// <param name="e"></param> async void Registrieren(System.Object sender, System.EventArgs e) { if (!string.IsNullOrWhiteSpace(RegVM.User.Nutzername)) { RegVM.User.Nutzername = RegVM.User.Nutzername.ToLower(); if (!string.IsNullOrWhiteSpace(RegVM.PW)) { if (!string.IsNullOrWhiteSpace(RegVM.PW2)) { if (RegVM.PW == RegVM.PW2) { string hashedpw = AllVM.HashPassword(RegVM.PW); RegVM.User.ErstelltAm = DateTime.Now; RegVM.User.Passwort = hashedpw; RegVM.User.InfoText = "Hi, ich bin neu hier!"; using (var webClient = new WebClient()) RegVM.User.ProfilBild = webClient.DownloadData("https://cdn.pixabay.com/photo/2016/11/11/09/59/white-male-1816195_1280.jpg"); if (AllVM.Datenbank.User.Insert(RegVM.User)) { AllVM.User = AllVM.ConvertFromUser(RegVM.User); Application.Current.Properties.Add("userid", RegVM.User.Nutzername); Application.Current.Properties.Add("userpw", RegVM.User.Passwort); await Application.Current.SavePropertiesAsync(); App.Current.MainPage = new AppShell(); } else { DependencyService.Get <IMessage>().ShortAlert("Fehler beim Speichern!"); } } else { DependencyService.Get <IMessage>().ShortAlert("Passwörter stimmen nicht überein"); } } else { DependencyService.Get <IMessage>().ShortAlert("Bitte Bestätigung eingeben"); } } else { DependencyService.Get <IMessage>().ShortAlert("Bitte Passwort eingeben"); } } else { DependencyService.Get <IMessage>().ShortAlert("Nutzername eingeben!"); } }
/// <summary> /// Anmeldedaten prüfen, lokal speichern und an den Server melden /// </summary> /// <param name="sender"></param> /// <param name="e"></param> async void Save(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(Nutzername)) { Nutzername = Nutzername.ToLower(); bool?exists = AllVM.Datenbank.User.Exists(Nutzername); if (exists == true) { string pw = AllVM.Datenbank.User.GetPasswort(Nutzername); string hpw = AllVM.HashPassword(Passwort); if (hpw == pw) { AllVM.Initial(Nutzername); Application.Current.Properties.Clear(); Application.Current.Properties.Add("userid", Nutzername); Application.Current.Properties.Add("userpw", pw); await Application.Current.SavePropertiesAsync(); App.Current.MainPage = new AppShell(); } else { DependencyService.Get <IMessage>().ShortAlert("Passwort stimmt nicht!"); } } else if (exists == false) { DependencyService.Get <IMessage>().ShortAlert("Nutzername unbekannt"); } else { DependencyService.Get <IMessage>().ShortAlert("Fehler beim Prüfen"); } } else { DependencyService.Get <IMessage>().ShortAlert("Nutzername eingeben!"); } }
/// <summary> /// Prüfen und Speichern des neuen Passworts /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Save(object sender, EventArgs e) { //Passwort muss bestimmte Kriterien haben var hasNumber = new Regex(@"[0-9]+"); var hasUpperChar = new Regex(@"[A-Z]+"); var hasLowerChar = new Regex(@"[a-z]+"); var hasMinimum8Chars = new Regex(@".{8,}"); string chpw = AllVM.HashPassword(cPWVM.CurPW); if (curPW == chpw) { if (!string.IsNullOrWhiteSpace(cPWVM.NewPW1)) { if (!string.IsNullOrWhiteSpace(cPWVM.NewPW1)) { if (hasMinimum8Chars.IsMatch(cPWVM.NewPW1)) { if (hasLowerChar.IsMatch(cPWVM.NewPW1)) { if (hasUpperChar.IsMatch(cPWVM.NewPW1)) { if (hasNumber.IsMatch(cPWVM.NewPW1)) { if (cPWVM.NewPW1 == cPWVM.NewPW2) { string hpw = AllVM.HashPassword(cPWVM.NewPW1); if (AllVM.Datenbank.User.ChangePW(cPWVM.User.Nutzername, hpw)) { AllVM.User.Passwort = hpw; OnBackButtonPressed(); DependencyService.Get <IMessage>().ShortAlert("Passwort erfolgreich geändert"); } else { DependencyService.Get <IMessage>().ShortAlert("Fehler beim Ändern"); } } else { DependencyService.Get <IMessage>().ShortAlert("Passwörter stimmen nicht überein"); } } else { DependencyService.Get <IMessage>().ShortAlert("Passwort muss mindestens eine Nummer enthalten"); } } else { DependencyService.Get <IMessage>().ShortAlert("Passwort muss mindestens einen Großbuchstaben enthalten"); } } else { DependencyService.Get <IMessage>().ShortAlert("Passwort muss mindestens einen Kleinbuchstaben enthalten"); } } else { DependencyService.Get <IMessage>().ShortAlert("Passwort muss mindestens 8 Zeichen lang sein"); } } else { DependencyService.Get <IMessage>().ShortAlert("Passwort wiederholen!"); } } else { DependencyService.Get <IMessage>().ShortAlert("Neues Passwort muss gefüllt werden"); } } else { DependencyService.Get <IMessage>().ShortAlert("Aktuelles Passwort ist nicht korrekt!"); } }