Example #1
0
        public async Task <ActionResult> LogIn(AccountLogInViewModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                AdminUserEntity user = null;

                //
                if (_RegularExpressions.SimpleEmail.IsMatch(model.EmailOrUsername))
                {
                    user = await _adminUserManager.FindByEmailAsync(model.EmailOrUsername);
                }
                else
                {
                    user = await _adminUserManager.FindByNameAsync(model.EmailOrUsername);
                }

                //
                if (user != null && user.Realms.Contains(Realm.AdminWebsite))
                {
                    _adminSignInManager.InitialPersistenceState = model.RememberMe;

                    var result = await _adminSignInManager.PasswordSignInAsync(
                        user.UserName,
                        model.Password,
                        model.RememberMe,
                        shouldLockout : true
                        );

                    switch (result)
                    {
                    case SignInStatus.LockedOut:
                    {
                        return(RedirectToAction("Locked", "Account"));
                    }

                    case SignInStatus.Success:
                    {
                        return(RedirectToLocal(returnUrl));
                    }
                    }
                }

                ModelState.AddModelError("credentials", GetLocalizedString("Auth_InvalidCredentialsMessage"));
            }

            ViewBag.ReturnUrl = returnUrl;

            return(View(model));
        }