因此,我有一个登录名,并且正在使用Linq,C#来检查是否存在适合用户输入的一对用户名/密码。如果有,则存储在用户变量中。如果user==null
,登录失败,如果user!=null
成功!现在,我加密了我的通行证,我需要重做登录代码,以便可以比较用户输入和存储在数据库中的散列通行证。我使用这个类来凑:将用户输入与来自db的散列密码进行比较#
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
}
}
从LogInPass.Text字段提取密码值后,可以在使用LINQ表达式之前应用相同的加密/散列逻辑。 – Gururaj
我的疑问是,如果验证方法返回一个布尔值,如何使用linq查询检查用户输入和数据库数据是否相等? –
可能是我错过了这里的东西。验证方法在哪里定义,它在做什么。你能否在它周围添加一些细节? – Gururaj