Как обновить окно входа в систему, когда я закрываю главное окно - PullRequest
0 голосов
/ 24 апреля 2019

Я создаю небольшое приложение администратора с использованием WPF. У этого есть два окна; окно входа и главное окно. Окно входа в систему, конечно, просто имя пользователя и пароль. И главное окно показывает данные из БД. Проблема в; когда я вхожу в систему, открывается главное окно, и из-за анимации в окне входа в систему исчезают и имя пользователя, и пароль. Как я могу обновить окно входа в систему, когда я закрываю главное окно? Спасибо!

код для экрана входа в систему;

public partial class LoginScreen : Window
{
    public LoginScreen()
    {
        InitializeComponent();
    }

    // Verify hashed password
    public static bool VerifyHashedPassword(string hashedPassword, string password)
    {

        byte[] buffer4;
        if (hashedPassword == null)
        {
            return false;
        }
        if (password == null)
        {
            throw new ArgumentNullException("password");
        }
        byte[] src = Convert.FromBase64String(hashedPassword);
        if ((src.Length != 0x31) || (src[0] != 0))
        {
            return false;
        }
        byte[] dst = new byte[0x10];
        Buffer.BlockCopy(src, 1, dst, 0, 0x10);
        byte[] buffer3 = new byte[0x20];
        Buffer.BlockCopy(src, 0x11, buffer3, 0, 0x20);
        using (Rfc2898DeriveBytes bytes = new Rfc2898DeriveBytes(password, dst, 0x3e8))
        {
            buffer4 = bytes.GetBytes(0x20);
        }
        return ByteArraysEqual(buffer3, buffer4);
    }

    private static bool ByteArraysEqual(byte[] buffer3, byte[] buffer4)
    {
        bool areEqual = buffer3.SequenceEqual(buffer4);

        return areEqual;
    }

    private void Button_Click_1(object sender, EventArgs e)
    {



        MySqlConnection conn = new MySqlConnection
        {
            ConnectionString = "server=db.***.**;database=***;uid=***;pwd=***;"
        };


        MySqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = "SELECT brukernavn, passord FROM admin_user WHERE brukernavn = '" + txtUsername.Text + "' AND passord ='" + txtPassword.Password + "'";

        conn.Open();

        cmd.ExecuteNonQuery();


        MySqlDataReader reader = cmd.ExecuteReader();

        String dbUsername = string.Empty;
        String dbPassword = string.Empty;


        while (reader.Read())
        {
            dbUsername += reader.GetString("brukernavn");
            dbPassword += reader.GetString("passord");

        }

        if (dbUsername == "" || dbPassword == "") 
        {
            Debug.WriteLine("Wrong username and Password");
            string message = "Wrong username or password";
            string title = "Error";
            MessageBox.Show(message, title);

            this.Show();
            LoginScreen mm = new LoginScreen();
            mm.Show();
        }
        else 
        {
            Debug.WriteLine("Success");

            this.Show();
            MainWindow mm = new MainWindow();
            mm.Show();
        }
    }
}

}

А это код для главного окна;

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e) { }


    private void Show_Users_Click(object sender, RoutedEventArgs e)
    {
        MySqlConnection conn = new MySqlConnection
        {
            ConnectionString = "server=db.****.**;database=***;uid=***;pwd=***;"
        }; try
        {
            conn.Open();





            string Query = "SELECT accountId, level, email, name FROM account";

            MySqlCommand createCommand = new MySqlCommand(Query, conn);



            createCommand.ExecuteNonQuery();


            MySqlDataAdapter dataAdp = new MySqlDataAdapter(createCommand);
            DataTable dt = new DataTable("account");
            dataAdp.Fill(dt);
            EditUsers.ItemsSource = dt.DefaultView;
            dataAdp.Update(dt);
            conn.Close();

        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }


    private void Edit_Data_Click(object sender, RoutedEventArgs e)
    {
        MySqlConnection conn = new MySqlConnection
        {
            ConnectionString = "server=db.****.**;database=***;uid=***;pwd=***;"
        }; try
        {
            conn.Open();





            string Query = "SELECT accountId, level, email, name FROM account ";

            MySqlCommand createCommand = new MySqlCommand(Query, conn);



            createCommand.ExecuteNonQuery();


            MySqlDataAdapter dataAdp = new MySqlDataAdapter(createCommand);
            DataTable dt = new DataTable("account");
            dataAdp.Fill(dt);
            EditUsers.ItemsSource = dt.DefaultView;
            dataAdp.Update(dt);
            conn.Close();

        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
}

}

1 Ответ

0 голосов
/ 24 апреля 2019

LoginScreen в этом вам необходимо закрыть экран LoginScreen

       else 
        {
            Debug.WriteLine("Success");
            this.Close();
            MainWindow mm = new MainWindow();
            mm.Show();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...