У меня есть некоторые проблемы с моим кодом, который я использую библиотеки BCRYPT для моего проекта Winform.Когда регистрация сделана, все работает нормально и код, как показано ниже для регистрационных форм.Вот мой код, чтобы вы могли его просмотреть.
using BCrypt.Net;
Код из регистрационной формы, этот работает нормально.
cmd.Parameters.AddWithValue("@Password", BCrypt.Net.BCrypt.HashPassword(txtPassword.Text));
Но когда я хочу войти, я пытаюсь использовать этокод, как показано ниже.
public partial class Login : Form
{
MySqlConnection Connection = new MySqlConnection("server=localhost; database=bh_lms; user=root; password=root; pooling = false; convert zero datetime=True");
public Login()
{
InitializeComponent();
}
private void Login_Load(object sender, EventArgs e)
{
//SplashScreen Loading
for (int i = 0; i < 120; i++)
{
Thread.Sleep(40);
}
}
private void btnLogin_Click(object sender, EventArgs e)
{
if (BCrypt.Net.BCrypt.Verify(txtPassword.Text, ""))
{
Connection.Open();
MySqlCommand cmd = new MySqlCommand("SELECT * FROM registration Where Username=@Username, Password=@Password", Connection);
cmd.Parameters.Add(new MySqlParameter("@Username", txtUsername.Text));
cmd.Parameters.Add(new MySqlParameter("@Password", txtPassword.Text));
MySqlDataReader reader = cmd.ExecuteReader();
int count = 0;
string userRole = string.Empty;
while (reader.Read())
{
count = +1;
userRole = reader["RegistrationType"].ToString();
}
if (count == 1)
{
this.Hide();
if (userRole == "Admin")
{
Dashboard.dbAdmin DashboardAdmin = new Dashboard.dbAdmin();
DashboardAdmin.Show();
}
else if (count > 1)
{
MessageBox.Show("Please enter correct username and password or register a new account!", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Error); ;
}
}
}
else
{
Connection.Close();
}
}
private void btnRegister_Click(object sender, EventArgs e)
{
this.Hide();
Registration Register = new Registration();
Register.Show();
}
}
}
У меня есть тип пользователя (Admin, Staff, HR и т. Д.), И я хочу попробовать этот код, если он работает или нет для панели пользователя.Но так как я не могу проверить пароль с помощью BCrypt, мне кажется, что мне лучше придерживаться старого кода, но при этом нет никакой безопасности, когда люди предлагают использовать параметры.
Если кто-то может мне помочь, как я могуподтвердите пароль, пожалуйста, дайте мне знать.Это почти 1 неделя, все еще не дало хорошего результата.