Я хэшировал пароль с помощью bcrypt, хешируется пароль, но когда я пытался проверить пароль во время входа в систему, я не получаю хешированный пароль базы данных, как я могу получить хешированный пароль базы данных и проверить его с помощью заданного пароля поля ввода.. Here is my login and sign up code[My Membership class from where I am getting the login data][1]
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(Models.Membership membership, User user)
{
using (var context = new dbTournamentEntities())
{
//bool isValid = context.Users.Any(m => m.UserName == membership.UserName && m.Password == membership.Password);
//string passwordHash = BCrypt.Net.BCrypt.HashPassword(user.Password, GetRandomSalt());
//string passwordHash = HashPassword(membership.Password);
//bool isValid = context.Users.Any(m => m.UserName == membership.UserName && m.Password == passwordHash);
bool isValid = ValidatePassword(membership.Password, user.Password);
if (isValid)
{
FormsAuthentication.SetAuthCookie(membership.UserName, false);
return RedirectToAction("Index", "Teams");
}
ModelState.AddModelError("", "Invalid UserName and Password");
return View();
}
}
public ActionResult Signup()
{
return View();
}
[HttpPost]
public ActionResult Signup(User user)
{
using (var context = new dbTournamentEntities())
{
var hashpass = HashPassword(user.Password);
user.Password = hashpass;
context.Users.Add(user);
context.SaveChanges();
}
return RedirectToAction("Login");
}
public ActionResult Logout()
{
FormsAuthentication.SignOut();
return RedirectToAction("Login");
}
private static string GetRandomSalt()
{
return BCrypt.Net.BCrypt.GenerateSalt();
}
public static string HashPassword(string password)
{
return BCrypt.Net.BCrypt.HashPassword(password, GetRandomSalt());
}
public static bool ValidatePassword(string password, string correctHash)
{
return BCrypt.Net.BCrypt.Verify(password, correctHash);
}