예제 #1
0
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }


            var user = await UserManager.FindByNameAsync(model.Email);

            if (user != null)
            {
                var validPass = await UserManager.CheckPasswordAsync(user, model.Password);
                if (validPass)
                {
                    if (!await UserManager.IsEmailConfirmedAsync(user.Id))
                    {

                        string callbackUrl = await SendEmailConfirmationTokenAsync(user.Id, "Подтверждение аккаунта - новое");

                        ViewBag.errorMessage = "Вы должны подтвердить свой аккаунт, чтобы войти !";
                        return View("Error");
                    }
                }
            }
            // Сбои при входе не приводят к блокированию учетной записи
            // Чтобы ошибки при вводе пароля инициировали блокирование учетной записи, замените на shouldLockout: true
            var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
            switch (result)
            {
                case SignInStatus.Success:
                    return RedirectToLocal(returnUrl);
                case SignInStatus.LockedOut:
                    return View("Lockout");
                case SignInStatus.RequiresVerification:
                    return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
                case SignInStatus.Failure:
                default:

                    ModelState.AddModelError("", "Неудачная попытка входа.");
                    return View(model);
            }
        }
예제 #2
0
        public async Task<ActionResult> Mauth(LoginViewModel model, string returnUrl)
        {

            System.Threading.Thread.Sleep(500);
            if (!ModelState.IsValid)
            {
                return Json(new { type = "error", message = "ошибка, некорректные данные!" });
            }


            var user = await UserManager.FindByEmailAsync(model.Email);

            if (user != null)
            {
                var validPass = await UserManager.CheckPasswordAsync(user, model.Password);
                if (validPass)
                {
                    if (!await UserManager.IsEmailConfirmedAsync(user.Id))
                    {

                        string callbackUrl = await SendEmailConfirmationTokenAsync(user.Id, "Подтверждение аккаунта - новое");
                        return Json(new { type = "error", message = "Неводтвержденный аккаунт, проверьте почту и активируйте аккаунт !" });
                    }
                }
            }
            // Сбои при входе не приводят к блокированию учетной записи
            // Чтобы ошибки при вводе пароля инициировали блокирование учетной записи, замените на shouldLockout: true
            var result = await SignInManager.PasswordSignInAsync(user.UserName, model.Password, model.RememberMe, shouldLockout: false);
            switch (result)
            {
                case SignInStatus.Success:
                    return Json(new { type = "success", username = user.UserName }); //RedirectToLocal(returnUrl);
                case SignInStatus.LockedOut:
                    return Json(' '); //View("Lockout");
                case SignInStatus.RequiresVerification:
                    return Json(' '); //RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
                case SignInStatus.Failure:
                default:
                    return Json(new { type = "error", message = "Неудачная попытка входа." });   //View(model);                                                             
            }
        }