public async Task <ControllerResponse> LogIn([FromBody] UserToLogInDto userDto) { if (!AuthorisationValidator.ValidateUserToLogIn(userDto)) { return(ControllerResponse.Warning( "Данные не введены полностью. Уточните данные запроса и повторите попытку")); } var user = _authorizationServices.LogIn(userDto.Login, userDto.Password.GetPasswordHash()); var claims = new List <Claim> { new Claim(ClaimsIdentity.DefaultNameClaimType, user.Name), new Claim(ClaimsIdentity.DefaultRoleClaimType, user.Role.ToString()), new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) }; var id = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); var principal = new ClaimsPrincipal(id); await HttpContext.SignInAsync(principal); return(ControllerResponse.Ok()); }
/// <summary> /// Техническая валидация данных для метода LogIn /// </summary> public static bool ValidateUserToLogIn(UserToLogInDto user) { return(user.ValidationOnNull() && !string.IsNullOrWhiteSpace(user.Login) && !string.IsNullOrWhiteSpace(user.Password)); }