所以,我有一个登录名,我使用Linq,C#来检查是否有一对符合用户输入的用户名/密码。如果有,则存储在User变量中。如果user==null
,则登录失败,如果user!=null
成功!现在,我加密了我的传递,我需要重做登录代码,这样我就可以比较用户输入和存储在数据库中的散列传递。我正在使用这个类来散列:
https://stackoverflow.com/a/32191537/1695100
我的登录代码
private void button_LogInEntrar_Click(object sender, EventArgs e)
{
string username = tb_LogInUsername.Text;
string password = tb_LogInPass.Text;
User userAdmin = (from admin in dbATMT.UserSet.OfType<Administrator>()
where admin.Username.Equals(username) && admin.Password.Equals(password)
select admin).FirstOrDefault();
if (userAdmin == null)
{
MessageBox.Show("Invalid");
}
else
{
//logs in
}
}
答案 0 :(得分:0)
您可能希望比较LINQ-Expression之外的密码,例如:
User userAdmin = (from admin in dbATMT.UserSet.OfType<Administrator>()
where admin.Username.Equals(username) select admin).FirstOrDefault();
if (userAdmin == null || !admin.Password.Equals(password))
{
MessageBox.Show("Invalid");
}
else
{
//logs in
}