400 Ошибка неверного запроса при имитации входа в систему с помощью Postman в ASP. NET Базовое веб-приложение с отдельными учетными записями пользователей, хранящимися в приложении. - PullRequest
0 голосов
/ 10 апреля 2020

Почтальон возвращает ошибку 400 Bad Request при попытке смоделировать запрос на вход в систему ASP. NET Базовое веб-приложение, которое имеет аутентификацию отдельных учетных записей пользователей, хранящихся в приложении.

Однако, Я могу войти в систему при использовании шаблона приложения по умолчанию, созданного Visual Studio. При использовании Chrome DevTools запрос выглядит следующим образом:

  • URL-адрес запроса: приложение / Identity / Account / Login
  • Метод запроса: POST
  • Тип содержимого: application / x- www-form-urlencoded
  • Данные формы:
    • Input.Email: адрес электронной почты пользователя
    • Input.Password: пароль пользователя
    • __ RequestVerificationToken: токен
    • Input.RememberMe: выбор пользователем значения true или false

Я безуспешно пытался смоделировать это с помощью Почтальона следующим образом: Заголовки запросов Почтальона и Тело запроса Почтальона

Почтальон возвращает ошибку 400 Bad Request без дополнительной информации: Ответ почтальона с кодом ошибки 400

Пожалуйста, не могли бы вы помочь мне определить, что неправильно в моем запросе при попытке смоделировать войти в систему с почтальоном?

Редактировать: Я не писал никаких пользовательских c ода для этого. Это шаблон по умолчанию, созданный в Visual Studio. Я попытался найти функцию, которая вызывается при использовании встроенной страницы входа

Когда я добавляю скаффолд "Identity" в проект с использованием Visual Studio, страница входа называется Login.cs html и он использует LoginModel по умолчанию. Когда я пытался выполнить отладку с точкой останова, я вижу, что она вызывает функцию с именем OnPostAsyn c в классе LoginModel.

Однако, когда я использую Postman, точка останова не достигается , Поэтому я думаю, что это может быть из-за неправильной структуры моего текущего запроса

1 Ответ

0 голосов
/ 10 апреля 2020

Иногда это может помочь. Украсьте свой класс PageModel с помощью [IgnoreAntiforgeryToken(Order = 1001)]. Ключ - это параметр Order. Встроенный [ValidateAntiforgeryToken] имеет порядок 1000, и, следовательно, явная установка [IgnoreAntiforgeryToken] на значение, большее 1000, должно решить проблему.

см. - Отключение проверки токена антиподделения

enter image description here

...