Как узнать причину неудачного входа в систему, когда ASP.NET Ядро не может войти в систему?

#c# #asp.net-core #authentication #asp.net-core-identity

#c# #asp.net-core #аутентификация #asp.net-core-identity

Вопрос:

Я использую ASP.NET Базовая идентификация для управления пользователями. И я получаю этот ответ, когда пытаюсь войти в систему пользователя:

 {
    type: "Error",
    message: "Not logged in",
    data: {
        succeeded: false,
        isLockedOut: false,
        isNotAllowed: false,
        requiresTwoFactor: false
    }
}
  

Как вы можете видеть, пользователь не вошел в систему, и никакая другая причина не верна.

Что мне теперь делать, чтобы выяснить, «почему» пользователь не вошел в систему? Как найти ошибку здесь?

Метод, который я использую PasswordSignInAsync , и результат, который он возвращает SignInResult , и у него нет поля для описания ошибки.

Комментарии:

1. Привет @tayebepourmand, есть какие-либо обновления по этому делу?

Ответ №1:

Метод, который я использую, — PasswordSignInAsync, а результат, который он возвращает, — SignInResult, и в нем нет поля для описания ошибки.

Для устранения проблемы вы можете обратиться к следующему фрагменту кода, чтобы проверить, существует ли / зарегистрирован пользователь, а затем проверить, действителен ли указанный пароль для указанного пользователя.

 //check if user is existing 
var user = await _userManager.FindByEmailAsync(Input.Email); //or .FindByNameAsync(username_here)


//check if pwd is valid
var pwd_is_valid = _userManager.CheckPasswordAsync(user, Input.Password);
  

И вы можете попробовать отладить свой код и проверить, записаны ли какие-либо полезные журналы в окно вывода.

введите описание изображения здесь

Кроме того, вы можете попробовать зарегистрировать нового пользователя и войти в систему с учетной записью этого нового пользователя, чтобы проверить, может ли он работать хорошо.