Web API 2 не говорит несанкционированный, когда метод HTTP не поддерживается - PullRequest
0 голосов
/ 06 октября 2018

Я просто тестировал новый метод POST, и случайно отправил неавторизованный запрос GET, и получил ответ:

"message": "The requested resource does not support http method 'GET'."

Но когда я отправил запрос POST, я получил такой ответ:

"message": "Authorization has been denied for this request."

Разве я не должен получать неавторизованное сообщение, независимо от того, что я делаю, если я не авторизован или даже аутентифицирован?

Вот метод:

[Route("api/search"), HttpPost, Authorize]
public async Task<IHttpActionResult> Search()
{
   ...
}

Я попытался украсить контроллер и метод с атрибутом [Authorize], и у меня также есть глобальный набор фильтров.

1 Ответ

0 голосов
/ 07 октября 2018

Сообщение, которое вы вернули за GET, было полностью точным.У вас нет действия GET оформленного, поэтому The requested resource does not support http method 'GET'.

Ваша забота о получении несанкционированного взамен не работает из-за того, что API должен сначала попытаться найти метод, который соответствуетподпись вашего запроса.Так как он не может найти GET, он возвращает ошибку для этого.

...