将 MySQL PASSWORD() 与实体框架一起使用

本文关键字:框架 一起 实体 MySQL PASSWORD | 更新日期: 2023-09-27 18:35:18

我们有一个旧的MySQL数据库,它使用MySQL函数PASSWORD()存储密码。有没有办法在 C# 中使用实体框架来选择带有密码的行?

旧方法是执行 sql 查询

SELECT * FROM `employees` WHERE `id` = @id AND `password` = PASSWORD(@pword);

然后将@id和@pword作为参数传递给 .Net 连接器。

在实体中,我们这样做

var query = from employeeRow in context.employees 
            where employeeRow.id.Equals(username_txt.Text) 
            select employeeRow; 
_foundEmployee = query.SingleOrDefault();

但这将返回行数据而不检查密码。我将如何检查已使用MySQL PASSWORD()散列的密码?

将 MySQL PASSWORD() 与实体框架一起使用

where employeeRow.id.Equals(username_txt.Text) && employeeRow.password.Equals(hashedPassword)

您需要单独执行密码哈希。我怀疑 mysql 文档会告诉你 PASSWORD() 方法使用什么算法。