Esempio n. 1
0
        public async Task <IActionResult> Register(RegisterModel model)
        {
            var recaptcha = await _recaptcha.Validate(Request);

            if (!recaptcha.success)
            {
                ModelState.AddModelError("Recaptcha", "Неопознанная ошибка при обработке запроса на сервер гугл, попробуйте позднее!");
                return(View(model));
            }
            if (!model.CheckUserCaptureinput())
            {
                ModelState.AddModelError("CaptureUserInput", "неправильно введена капча ");
            }
            if (ModelState.IsValid)
            {
                User user = await db.Users.FirstOrDefaultAsync(u => u.Login == model.Login);

                if (user == null)
                {
                    // добавляем пользователя в бд
                    db.Users.Add(new User {
                        name = model.Name, Login = model.Login, PasswordHash = CryptoHelper.GetMD5(model.Password), AccessLevel = 9000
                    });
                    await db.SaveChangesAsync();

                    await Authenticate(model.Login); // аутентификация

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ModelState.AddModelError("", "Некорректные имя, логин и(или) пароль");
                }
            }
            return(View(model));
        }