Ejemplo n.º 1
0
        public ActionResult Authorization(UserAuthorization model)
        {
            IRepository repository = new CommunicationWithDataBase();

            logger.Debug("Обращение к базе данных для получения данных о пользователе");
            User user = repository.GetUserByLogin(model.Login?.ToLower());

            if (user?.BlockDate > DateTime.Now)
            {
                logger.Debug($"Ошибка входа, пользователь {user.Login} заблокирован в системе");
                ModelState.AddModelError("AuthorizationValidationError",
                                         $"Вы заблокированы в системе до {user.BlockDate.ToString("d")}.");
            }
            else if (model.Password == null)
            {
                ModelState.AddModelError("AuthorizationValidationError", "Логин или пароль некорректен");
            }
            else if (repository.CheckUserAuthorization(model.Login?.ToLower(), model?.Password))
            {
                logger.Debug($"Обращение к базе данных для проверки подлиности данных авторизации");
                if (model.Login == null)
                {
                    logger.Error("Ошибка. Логин пользователя был null");
                }

                FormsAuthentication.SetAuthCookie(model.Login.ToLower(), true);
                logger.Info($"Пользователь {user.Login} выполнил вход на сайт");
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                ModelState.AddModelError("AuthorizationValidationError", "Логин или пароль некорректен");
            }

            logger.Info($"Отказ входа. некорректные данные");
            return(View(model));
        }