Я выглядит UserManager model.It как:asp.net MVC 3 условие всегда возвращает ложь
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, пароль). Когда я запускаю этот контроллер, он всегда дает мне сообщение об ошибке «Предоставленный пароль неверен». if (model.password == pass) это условие всегда дает false. пожалуйста, помогите мне. Спасибо в Advance ..
Ваш пароль хранится от GetUserPassword() хэшируются или шифруются? – Tuan
Вам нужно сделать простую отладку ... т. Е. В GetUserPassword, пользователь == null или он возвращается с пользователем ... если пользователь возвращается - какова его ценность для свойства пароля? – Charlino
пароль - это просто тип nchar в базе данных. Я проверяю, что возвращаемый пароль не является нулевым или пустым. –