我如何读取用户角色来验证我的登录c# windows表单.这是我的实现



大家好,我真的是一个初学者,需要你们的帮助和建议。

所以我试图在我的登录表单中创建身份验证。用户角色与用户名和密码在同一表中,但我没有更好的想法在我的Winforms中实现身份验证。

我想做这样的事情如果用户角色id == 1然后进入管理仪表板如果用户角色id == 2然后进入用户仪表板

但是我在访问我的数据库时卡住了。

这是我的代码函数。

这是数据库的登录函数:

public static bool LOGIN(string user, string pass)
{
try
{
SqlCommand sqlCommand;
string Query = "SELECT COUNT(*) FROM tblBPAccounts WHERE username=@user AND passwd=@pass";
using (var SqlConn = new SqlConnection(DatabaseHelper.connection))
{
SqlConn.Open();
sqlCommand = new SqlCommand(Query, SqlConn);
sqlCommand.Parameters.AddWithValue("@user", user);
sqlCommand.Parameters.AddWithValue("@pass", pass);

int result = (int)sqlCommand.ExecuteScalar();
return (result > 0);

}
}
catch (Exception ex)
{
Console.WriteLine("{0}" , ex.Message);
return false;
}
}

如果user role是== id:

private void LoginButton_Click(object sender, EventArgs e)
{
if (DatabaseHelper.LOGIN(UsernameTextBox.Text, PasswordTextBox.Text))
{
//dialog box for successful login
MessageBox.Show("Login Successfully", "Login", MessageBoxButtons.OK, MessageBoxIcon.Information);
//to hide the first form when button pressed 
this.Hide();
// Log in was successful, do something...
AdminDashboard admin = new AdminDashboard();
admin.ShowDialog();
}
else
{
// Log in was NOT successful, inform the user...
MessageBox.Show("Incorrect Username or Password", "Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
} 

use sqlDataReader

SqlDataReader reader = sqlCommand.ExecuteReader();
if (reader.HasRows)
{
reader.Read();
if (Convert.ToInt16(reader["TypeofUser"])==1)
else if Convert.ToInt16(reader["TypeofUser"]==2)
return true;
}
else
{
return false;
}

这可能对你有点帮助

try{
string query ="SELECT USERNAME,PASSWORD,TYPE from ***** WHERE.....");
conn.Open();
MysqlCommand comm = new MysqlCommand(query,Myconnection);
MysqlDataReader read = comm.ExecuteReader();
if(read.HasRows){
while(read.Read())
{
string Type = read.GetString(2);//Get Value of Type
if(Type.EQuals("admin"))
{
//open admin
}else{ 
}
}
}   
else
{
//Invalid user and pass
}
conn.Close();
}
catch(Exception eee)
{Console.WriteLine(eee.Message);}

最新更新