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()); }
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)); }