将用户输入与db c#中的散列密码进行比较

时间:2017-05-28 20:34:06

标签: c# linq hash

所以,我有一个登录名,我使用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
    }
}

1 个答案:

答案 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
                        }