【发布时间】:2014-12-23 17:31:35
【问题描述】:
我们有一个旧的 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() 散列的密码?
【问题讨论】:
-
“
PASSWORD()函数被MySQL Server中的认证系统使用;你应该不在你自己的应用程序中使用它。” -
我同意 SNOWFLAKE,但目前我对此无能为力。我只需要在更新软件时使用我得到的东西。我最终将有机会更新数据库,届时我将切换到本地哈希方法。
标签: c# mysql entity-framework