示例#1
0
        public async Task <IActionResult> Register(RegistrerUserViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model)); // Если данные в форме некоректны, то на доработку
            }
            using (_Logger.BeginScope("Регистрация нового пользователя {0}", model.UserName))
            {
                var new_user = new User         // Создаём нового пользователя
                {
                    UserName = model.UserName
                };
                // Пытаемся зарегистрировать его в системе с указанным паролем
                var creation_result = await _UserManager.CreateAsync(new_user, model.Password);

                if (creation_result.Succeeded)                         // Если получилось
                {
                    await _SignInManager.SignInAsync(new_user, false); // То сразу логиним его на сайте

                    _Logger.LogInformation("Пользователь {0} успешно зарегистрирован в системе", model.UserName);

                    return(RedirectToAction("Index", "Home")); // и отправляем на главную страницу
                }

                foreach (var error in creation_result.Errors)         // Если что-то пошло не так...
                {
                    ModelState.AddModelError("", error.Description);  // Все ошибки заносим в состояние модели
                }
                _Logger.LogWarning("Ошибка при регистарции пользователя {0}: {1}",
                                   model.UserName,
                                   string.Join(", ", creation_result.Errors.Select(error => error.Description)));
            }

            return(View(model));                                   // И модель отправляем на доработку
        }
        public async Task <IActionResult> Register(RegistrerUserViewModel model)
        {
            if (!ModelState.IsValid)             // проверка данных формы
            {
                return(View(model));
            }

            using (_logger.BeginScope($"Регистрация нового пользователя {model.UserName}"))
            {
                var newUser = new User
                {
                    UserName = model.UserName
                };
                // Регистрируем в системе
                var createResult = await _userManager.CreateAsync(newUser, model.Password);

                if (createResult.Succeeded)                           // Если получилось
                {
                    await _signInManager.SignInAsync(newUser, false); // Логиним на сайте

                    _logger.LogInformation($"Пользователь {model.UserName} успешно зарегистрирован");
                    return(RedirectToAction("Index", "Home"));                    // редирект на главную
                }

                foreach (var error in createResult.Errors)                 // Если ошибки
                {
                    ModelState.AddModelError("", error.Description);       // добавляем их к состоянию модели
                }
                _logger.LogWarning($"Ошибка регистрации пользователя {model.UserName}: " +
                                   string.Join(", ", createResult.Errors.Select(e => e.Description)));
            }

            return(View(model));            // возвращем модель браузеру
        }
示例#3
0
        public async Task <IActionResult> Register(RegistrerUserViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model)); // Если данные в форме некоректны, то на доработку
            }
            var new_user = new User  // Создаём нового пользователя
            {
                UserName = model.UserName
            };
            // Пытаемся зарегистрировать его в системе с указанным паролем
            var creation_result = await _UserManager.CreateAsync(new_user, model.Password);

            if (creation_result.Succeeded)                         // Если получилось
            {
                await _SignInManager.SignInAsync(new_user, false); // То сразу логиним его на сайте

                return(RedirectToAction("Index", "Home"));         // и отправляем на главную страницу
            }

            foreach (var error in creation_result.Errors)         // Если что-то пошло не так...
            {
                ModelState.AddModelError("", error.Description);  // Все ошибки заносим в состояние модели
            }
            return(View(model));                                  // И модель отправляем на доработку
        }
        public async Task <IActionResult> Register(RegistrerUserViewModel model, [FromServices] ILogger <AccountController> logger)
        {
            if (!ModelState.IsValid)
            {
                logger.LogWarning($"Ошибка модели");
                return(View(model)); // Если данные в форме некоректны, то на доработку
            }

            var new_user = new User         // Создаём нового пользователя
            {
                UserName = model.UserName
            };

            using (logger.BeginScope("Регистрация началась"))
            {
                // Пытаемся зарегистрировать его в системе с указанным паролем
                var creation_result = await _UserManager.CreateAsync(new_user, model.Password);

                if (creation_result.Succeeded)                         // Если получилось
                {
                    await _SignInManager.SignInAsync(new_user, false); // То сразу логиним его на сайте

                    logger.LogInformation($"Пользователь успешно зарегистрирован { model.UserName }");
                    return(RedirectToAction("Index", "Home")); // и отправляем на главную страницу
                }

                foreach (var error in creation_result.Errors)         // Если что-то пошло не так...
                {
                    ModelState.AddModelError("", error.Description);  // Все ошибки заносим в состояние модели
                }
            }

            return(View(model));                                   // И модель отправляем на доработку
        }
示例#5
0
        public async Task <ActionResult> Registrar(RegistrerUserViewModel registerUser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = new IdentityUser
            {
                UserName       = registerUser.Email,
                Email          = registerUser.Email,
                EmailConfirmed = true
            };

            var result = await _userManager.CreateAsync(user, registerUser.Password);

            if (result.Succeeded)
            {
                await _signInManager.SignInAsync(user, false);

                return(Ok(new
                {
                    sucess = true,
                    data = await GerarJwt(user.Email)
                }));
            }
            var listErrors = new List <string>();

            foreach (var error in result.Errors)
            {
                listErrors.Add(error.Description);
            }
            return(BadRequest(new
            {
                sucess = false,
                errors = listErrors
            }));
        }