コード例 #1
0
        private void btnSignUp_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(tbUsername.Text) || string.IsNullOrWhiteSpace(pbPassword.Password))
            {
                MessageBox.Show("Some fields are empty");
                return;
            }
            else if (DB.DoesUsernameExist(tbUsername.Text))
            {
                MessageBox.Show("Username already exists");
                return;
            }
            else if (pbPassword.Password.Contains(" "))
            {
                MessageBox.Show("Password cannot contain spaces");
                return;
            }
            else if (tbUsername.Text.Length > 32 || pbPassword.Password.Length > 32)
            {
                MessageBox.Show("Usernames and password can't be longer than 32 characters");
                return;
            }
            else if (string.IsNullOrWhiteSpace(tbEmail.Text))
            {
                SystemSounds.Exclamation.Play();
                MessageBoxResult _dialogResult = MessageBox.Show("If you don't insert an email then you won't be able to access your account in case you forget your password. Confirm empty email?", "No email", MessageBoxButton.YesNo);
                if (_dialogResult == MessageBoxResult.No)
                {
                    return;
                }
            }

            if (string.IsNullOrWhiteSpace(proPicPath))
            {
                proPicPath = "/Assets/user_icon.png";
            }

            string hashedPassword = Helper.HashPassword(pbPassword.Password);
            User   user           = new User()
            {
                Username   = tbUsername.Text,
                Email      = tbEmail.Text,
                Password   = hashedPassword,
                ProPicPath = proPicPath,
            };

            Session.LoggedUser = user;

            if (DB.RegisterUser(user))
            {
                MessageBox.Show("User registered successfully!");
                parentWindow.EnterApp(user.ProPicPath);
            }
        }
コード例 #2
0
        private void btnLogIn_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(tbUsername.Text) || string.IsNullOrWhiteSpace(pbPassword.Password))
            {
                MessageBox.Show("Some fields are empty");
                return;
            }
            string username = tbUsername.Text.Trim();
            string password = pbPassword.Password.Trim();

            User user = DB.UserLogIn(username, password);

            if (user != null)
            {
                Session.LoggedUser = user;
                SignWindow signWindow = Helper.GetAncestorOfType <SignWindow>(this);
                if (signWindow != null)
                {
                    signWindow.EnterApp(user.ProPicPath);
                }
            }
            else
            {
                //// does user exist? if so, he might have used a temp token
                //int userId = DB.GetUserId(username);
                //if(userId != -1)
                //{
                //    // check if he has a token available
                //    int ticketId = DB.TryGetToken(password, userId);
                //    if(ticketId > 0)
                //    {
                //        // set token as "Used" in table
                //        DB.TicketWasUsed(ticketId);

                //        // log user in
                //        user = DB.GetUser(userId);
                //        if(user != null)
                //        {
                //            Session.LoggedUser = user;
                //            SignWindow signWindow = Helper.GetAncestorOfType<SignWindow>(this);
                //            if (signWindow != null)
                //            {
                //                signWindow.EnterApp(user.ProPicPath);
                //            }
                //        }
                //    }
                //    else if(ticketId == 0)
                //    {
                //        MessageBox.Show("You tried to use a temporary password that has already been used");
                //    }
                //    else if(ticketId == -1)
                //    {
                //        MessageBox.Show("You tried to use a temporary password that has expired");
                //    }
                //    else
                //    {
                //        MessageBox.Show("Wrong password");
                //    }
                //}
                //else
                //{
                //    MessageBox.Show("That username doesn't exist");
                //}


                // does username exist?
                int id = DB.GetUserId(tbUsername.Text);
                if (id != -1)
                {
                    if (DB.GetToken(pbPassword.Password, id))
                    {
                        MessageBox.Show("Token used!");
                        DB.SetTokenToUsed(pbPassword.Password);

                        Session.LoggedUser = DB.UserLogIn(tbUsername.Text);
                        SignWindow signWindow = Helper.GetAncestorOfType <SignWindow>(this);
                        if (signWindow != null)
                        {
                            signWindow.EnterApp(Session.LoggedUser.ProPicPath);
                            return;
                        }
                    }
                }
                MessageBox.Show("Username or password wrong");
            }
        }