IましたUserManager Model.itの次のようになります。のasp.net MVC 3条件が常にfalseを返す
public class UserManager
{
private ToLetDBEntities TLE = new ToLetDBEntities();
public string GetUserPassword(string usermail)
{
var user = from o in TLE.users where o.email_add == usermail select o;
if (user.ToList().Count > 0)
{
return user.First().password;
}
else
return string.Empty;
}
}
と私はしましたAccountControllerのように:
public class AccountController : Controller
{
[HttpPost]
public ActionResult LogOn(UserLogOn model)
{
if (ModelState.IsValid)
{
UserManager um = new UserManager();
string pass = um.GetUserPassword(model.email_add);
if (model.password==pass)
{
FormsAuthentication.SetAuthCookie(model.email_add, false);
return RedirectToAction("Welcome", "Home");
}
else
{
ModelState.AddModelError("", "The provided password is incorrect.");
}
}
return View(model);
}
}
と私はしましたUserLogonモデルには(email_add、password)が含まれています。このコントローラーを実行すると、常に「提供されたパスワードが間違っています」というエラーメッセージが表示されます。 if(model.password == pass)この条件は常にfalseを返します。誰も助けてください。先進的でありがとう。
がGetUserPasswordから保存されたパスワードは()ハッシュ化または暗号化されていますか? – Tuan
あなたは簡単なデバッグを行う必要があります。つまり、GetUserPasswordでは、ユーザーは== nullになりますか、ユーザーが戻ってきますか?ユーザーが戻った場合 - パスワードプロパティの値は何ですか? – Charlino
パスワードは単にデータベースのnchar型です。私はそのパスワードがnullか空でないことを確認しました。 –