示例#1
0
        public async Task <IActionResult> Register(RegisterStandardUserViewModel registerDto)
        {
            IValidationContext validationContext = new ValidationContext <RegisterDto>(registerDto);

            if (!ModelState.IsValid || !_registerValidator.Validate(validationContext).IsValid)
            {
                return(View());
            }

            var registerResponse = _accountClientService.RegisterResponse(registerDto);

            if (registerResponse.Result.IsSuccessful)
            {
                var location   = _accountClientService.GetUserLocation(await registerResponse);
                var id         = new string(location.Where(Char.IsDigit).ToArray());
                var signInUser = _accountClientService.GetUserDtoById(Int32.Parse(id));
                await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, GeneratePrincipal.GetPrincipal(signInUser.Result));

                return(RedirectToAction("Index", "Account"));
            }
            return(View());
        }
示例#2
0
        public async Task <IActionResult> Login(LoginViewModel loginViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var response = _accountClientService.LoginResponse(loginViewModel.LoginDto);

            if (response.Result.IsSuccessful)
            {
                var signInUser = Newtonsoft.Json.JsonConvert.DeserializeObject <UserDto>(response.Result.Content);
                await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, GeneratePrincipal.GetPrincipal(signInUser));

                return(loginViewModel.RedirectUrl is null?RedirectToAction("Index", "Home") : Redirect(loginViewModel.RedirectUrl));
            }
            ModelState.AddModelError(nameof(LoginDto.Password), "Invalid username or password!");
            return(View(loginViewModel));
        }