我有用於登錄到我的系統的這段代碼。有這個功能,我可以隨時更改我的密碼。但事實是,我不知道一旦我的密碼已被更改什麼在此代碼更改,這樣我可以在日誌中使用它。如果您更改密碼,如何使用密碼?
private void Button_Click(object sender, RoutedEventArgs e)
{
if((usrnm.Text == "Administrator") && (password.Text == "administrator"))
{
MainWindow main = new MainWindow();
main.Show();
this.Hide();
}
else
{
MessageBox.Show("Username or Password is Incorrect.");
}
}
而且也,每次我改變了它,它說, 「密碼已更改」,但在數據庫中不會更改。
private void btn_save_Click(object sender, RoutedEventArgs e)
{
if (opw.Text == "administrator")
{
if (npw.Text == cpw.Text)
{
OpenDbase("Update USER set Password '" + this.npw.Text + "'");
DataTable dtable = new DataTable();
MessageBox.Show("Password has been changed.");
}
else
{
MessageBox.Show("Npw and Cpw mismatched.");
}
}
else
{
MessageBox.Show("Opw was Incorrect.");
}
}
首先給我清楚的細節,你正在使用的數據庫和所有。在上面的代碼中,您正在使用的DataTable的用途是什麼。並且「OpenDbase」方法不是由您提供的。提供完整的代碼或至少提供必要的代碼 – Gopi
這是實際的代碼,還是這是一個剪切和粘貼錯誤?我認爲你的更改密碼處理程序更新了數據庫中的密碼,但是我認爲你的登錄處理程序是這樣的:'if((usrnm.Text ==「Administrator」)&&(password.Text ==「administrator 「))'無論密碼更改爲什麼,您都會檢查密碼是否爲'administrator'。 –
該代碼有兩個問題開始:在登錄時,它不檢查當前密碼,但始終檢查相同的密碼。您需要將密碼與數據庫中的密碼進行比較。對於更改密碼的舊密碼檢查也是如此。第二:請永遠不要在任何地方存儲文字密碼!如果您將它們存儲在任何地方,請將其散列否則,一旦數據被盜,您的客戶可能會遇到麻煩。 – CShark