예제 #1
0
        /// <summary>
        /// Checks a RegistrationRequest
        /// </summary>
        /// <param name="request">RegistrationRequest to check</param>
        /// <returns>Indicates if it was successful</returns>
        private static bool CheckRegistrationRequest(RegistrationRequest request)
        {
            string   email    = request.Email;
            string   nickname = request.Nickname;
            string   password = request.PasswordHash;
            DateTime date     = request.Birthday;

            if (string.IsNullOrWhiteSpace(email))
            {
                return(false);
            }
            if (string.IsNullOrWhiteSpace(nickname))
            {
                return(false);
            }
            if (string.IsNullOrWhiteSpace(password))
            {
                return(false);
            }
            if (!email.Contains('@') || !email.Contains('.'))
            {
                return(false);
            }
            if (nickname.Length > 16 || nickname.Length < 4)
            {
                return(false);
            }
            if (password.Length != 64)
            {
                return(false);
            }


            if (DateConverter.GetAgeFromDate(date) < 12)
            {
                return(false);
            }

            return(true);
        }
예제 #2
0
        private void Register_Click(object sender, EventArgs e)
        {
            WaitForFeedback = true;

            string address   = txtServerAddress.TextWithoutWatermark;
            string email     = txtEmail.TextWithoutWatermark;
            string nickname  = txtNickname.TextWithoutWatermark;
            string birthday  = txtBirthday.TextWithoutWatermark;
            string password  = txtPassword.TextWithoutWatermark;
            string password2 = txtPassword2.TextWithoutWatermark;

            if (string.IsNullOrWhiteSpace(email))
            {
                MessageBox.Show("Sie müssen eine Email eingeben.");
                WaitForFeedback = false;
                return;
            }
            if (string.IsNullOrWhiteSpace(nickname))
            {
                MessageBox.Show("Sie müssen einen Benutzername eingeben.");
                WaitForFeedback = false;
                return;
            }
            if (string.IsNullOrWhiteSpace(birthday))
            {
                MessageBox.Show("Sie müssen ein Geburtsdatum eingeben.");
                WaitForFeedback = false;
                return;
            }
            if (string.IsNullOrWhiteSpace(password))
            {
                MessageBox.Show("Sie müssen ein Passwort eingeben.");
                WaitForFeedback = false;
                return;
            }
            if (string.IsNullOrWhiteSpace(password2))
            {
                MessageBox.Show("Sie müssen das Passwort bestätigen.");
                WaitForFeedback = false;
                return;
            }

            if (password != password2)
            {
                MessageBox.Show("Die Passwörter stimmen nicht überein.");
                WaitForFeedback = false;
                return;
            }
            if (!DateTime.TryParse(birthday, out DateTime date))
            {
                MessageBox.Show("Geben Sie ein gültiges Datum ein. \n   Tipp: dd.mm.yyyy");
                WaitForFeedback = false;
                return;
            }
            if (!email.Contains('@') || !email.Contains('.'))
            {
                MessageBox.Show("Geben Sie eine gültige Email ein.");
                WaitForFeedback = false;
                return;
            }

            if (nickname.Length > 16 || nickname.Length < 4)
            {
                MessageBox.Show("Der Benutzername muss mindestens 4 und maximal 16 Zeichen haben.");
                WaitForFeedback = false;
                return;
            }
            if (password.Length < 8)
            {
                MessageBox.Show("Das Passwort muss mindestens 8 Zeichen lang sein.");
                WaitForFeedback = false;
                return;
            }

            if (DateConverter.GetAgeFromDate(date) < 12)
            {
                MessageBox.Show("Sie müssen mindestens 12 Jahre alt sein!");
                WaitForFeedback = false;
                return;
            }

            if (!IPAddress.TryParse(address, out IPAddress ipAddress))
            {
                MessageBox.Show("Ungültige IP Addresse.");
                WaitForFeedback = false;
                return;
            }

            CConnectionController.ServerAddress = ipAddress.ToString();

            string hash = Encode.GetHash(password);

            RegistrationRequest registration = new RegistrationRequest(email, nickname, hash, date);

            if (!CConnectionController.TrySendPackage(registration, CConnectionController.ServerAddress))
            {
                WaitForFeedback = false;
                return;
            }

            timer.Enabled = true;
        }