public ActionResult SignIn(UserSigninVM model, string returnUrl) { if (!ModelState.IsValid) { return(View(model)); } var response = AccountService.SignInUser(model); if (response.Success) { base.SignUserIn(response.UserId, response.UserEmail, model.RememberMe); return(ReturnTo(returnUrl)); } ModelState.AddModelError("", response.ErrorCode.ToDescription()); return(View(model)); }
public SignInResponse SignInUser(UserSigninVM model) { if (!HasSameEmail(model.Email)) { return(new SignInResponse(false, ErrorCode.NOEMAIL)); } var userInDb = UnitOfWork.Users.SingleOrDefault(m => m.Email == model.Email); if (userInDb.IsCanceled) { return(new SignInResponse(false, ErrorCode.CANCELEDUSER)); } var salt = userInDb.Salt; var inputPassword = PasswordEncryptor.GenerateSHA256Hash(model.Password, salt); if (inputPassword != userInDb.Password) { return(new SignInResponse(false, ErrorCode.PASSWORDNOTMATCH)); } return(new SignInResponse(true, userInDb.UserId, userInDb.Email)); }