public async Task <OperationDetails> AuthenticateAsync(LogInUserDTO userDTO) { if (!userDTO.IsValid()) { return(userDTO.GetValidateError()); } string username = null; var applicationUser = await userManager.GetUserByEmailAsync(userDTO.Login); if (applicationUser == null) { var userProfile = await dataStore.UserProfiles.GetByNameAsync(userDTO.Login); if (userProfile == null) { return(new OperationDetails(false, new string[] { "Username not found." })); } username = userProfile.Username; applicationUser = await userManager.GetUserByIdAsync(userProfile.IdentityUserId); if (applicationUser == null) { return(new OperationDetails(false, new string[] { "Error in system logic." })); } } var result = await userManager.CheckPassword(applicationUser, userDTO.Password); if (!result.IsSuccess) { return(new OperationDetails(false, result.ErrorList.Select(x => x.Description))); } else { if (username == null) { username = dataStore.UserProfiles.GetAll() .FirstOrDefault(x => x.IdentityUserId == applicationUser.Id) .Username; } ///включение подтверждения пароля //if(applicationUser.EmailConfirmed) return(new OperationDetails(true, new string[] { username })); //else // return new OperationDetails(false, new string[] { "Email not confirmed." }); } }