Ejemplo n.º 1
0
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) //Обработка запроса на авторизацию
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            IUsersContext usersContext = new UsersContext();

            if (usersContext.ValidateUser(model.Login, model.Password))
            {
                Session["login"] = model.Login.ToLower();
                Session["isAuth"] = true;
                int a = Session.Timeout;
                
                if (Url.IsLocalUrl(returnUrl))
                {
                    return Redirect(returnUrl);
                }
                else
                {
                    return RedirectToAction("Index", "Home");
                }
            }
            else return View(model);
        }
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            // This doesn't count login failures towards account lockout
            // To enable password failures to trigger account lockout, change to 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("", "Invalid login attempt.");
                    return View(model);
            }
        }
Ejemplo n.º 3
0
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            // Сбои при входе не приводят к блокированию учетной записи
            // Чтобы ошибки при вводе пароля инициировали блокирование учетной записи, замените на 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);
            }
        }
Ejemplo n.º 4
0
        public async Task<ActionResult> Register(RegisterViewModel model) //Обработка данных с формы регистрации
        {
            if (ModelState.IsValid)
            {
                var user = new User { e_mail = model.Email, login = model.Login, password = model.Password };
                IUsersContext usersContext = new UsersContext();
                LoginViewModel _model = new LoginViewModel();
                _model.Login = model.Login;
                _model.Password = model.Password;
                if (usersContext.CreateUser(user) != null)
                {
                    await Login(_model, null);
                    return RedirectToAction("Index", "Home");
                }
            }

            // Появление этого сообщения означает наличие ошибки; повторное отображение формы
            return View(model);
        }