Beispiel #1
0
        public IActionResult SignIn(string returnUrl)
        {
            var signInModel = new MemberSignInModel()
            {
                ReturnUrl = returnUrl
            };

            return(View(signInModel));
        }
Beispiel #2
0
        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)));
        }