我正在尝试使用以下代码调用我的.NET Core API:
using (var webClient = new WebClient())
{
try
{
webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json");
string json = JsonConvert.SerializeObject(updateLiveMapRequest);
byte[] data = Encoding.UTF8.GetBytes(json);
await webClient.UploadDataTaskAsync("http://localhost:1778/api/upload/data", data);
}
catch (WebException ex)
{
Logger.Debug(ex);
throw;
}
}
在我的服务器上,出于测试目的,只需返回Forbid()
:
return Forbid();
呼叫到达控制器,但是消费的Web客户端非常满意于获得403作为结果并且不像BadRequest
那样抛出异常。
为什么?
答案 0 :(得分:0)
我只是想通过this回答:
当您想要使用来自API的HTTP 403状态代码进行响应时 不希望ASP.NET Core身份验证逻辑执行任何操作 重定向或其他操作,请使用:
这样可以解决问题:
return StatusCode((int)HttpStatusCode.Forbidden);