我刚刚测试一个新的 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]
属性装饰控制器和方法,并且我还设置了全局筛选器。
你得到的GET
消息是完全准确的。您没有 GET 修饰的操作,因此The requested resource does not support http method 'GET'
.
由于 API 必须首先尝试并找到与您的请求签名匹配的方法,因此您对获得未授权的担忧不起作用。由于它找不到GET
因此它会为此返回错误。