我使用BCrypt对密码进行散列。在我的登录查询中,我检查密码:
var kier =(来自b in baza.Logowanies,其中b.Login == model.Użytkownik && b.Login b.Haslo) && b.konto == "kierownik“选择b).Any();
在编译期间,我有一个错误:
方法'Boolean (System.String,System.String)‘不支持转换到SQL。
我怎样才能解决这个问题?
发布于 2011-11-08 03:58:23
您正在使用Linq到- SQL,这意味着您的Linq查询将被转换为对数据库运行的SQL语句。在SQL中没有CheckPassword。首先,您必须在没有密码散列检查的情况下从数据库加载用户。那就做散列检查。类似于:
var user = (from b in baza.Logowanies where b.Login == model.Użytkownik && b.konto == "kierownik" select b).FirstOrDefault();
if (user != null && BCryptHelper.CheckPassword(model.Hasło, user.Haslo))
{
// Do login.
}
else
{
// Fail login.
}
请注意,这里存在语言障碍,我可能做了一些错误的猜测。
https://stackoverflow.com/questions/8049171
复制相似问题