public IActionResult SignIn(string returnUrl) { var signInModel = new MemberSignInModel() { ReturnUrl = returnUrl }; return(View(signInModel)); }
public async Task <IActionResult> SignIn([Bind("EmailAddress", "Password", "ReturnUrl")] MemberSignInModel signInModel) { if (!ModelState.IsValid) { return(View()); } Member member = _work.Members.GetAll().SingleOrDefault(m => m.EmailAddress == signInModel.EmailAddress); bool isValid = true; if (member == null) { isValid = false; } else if (!member.IsValidPassword(signInModel.Password)) { isValid = false; } //invalid sign in if (!isValid) { _work.Logger.Log($"Sign In Failure."); ModelState.AddModelError(string.Empty, "Invalid Username and/or Password."); signInModel.IsValid = false; return(View(signInModel)); } //valid sign in if (isValid) { _work.Logger.Log($"Sign In for {member.EmailAddress}"); await DoSignIn(member); if (!string.IsNullOrEmpty(signInModel.ReturnUrl)) { return(Redirect(signInModel.ReturnUrl)); } return(RedirectToAction("Index", "Home")); } return(RedirectToAction(nameof(Denied))); }