要让C# .NET核心Web API在抛出AuthorizationException时返回401状态码,可以通过以下步骤实现:
Startup.cs
文件的Configure
方法中的异常处理中间件中。AuthorizationException
的代码块。这个代码块可能使用app.UseExceptionHandler
或app.UseStatusCodePages
等方法。AuthorizationException
的代码块中,将返回的HTTP状态码从500修改为401。可以使用HttpContext.Response.StatusCode
属性来设置状态码,将其设置为401即可。以下是一个示例代码片段,展示了如何修改异常处理中间件以返回401状态码:
app.UseExceptionHandler(errorApp =>
{
errorApp.Run(async context =>
{
var exceptionHandlerPathFeature = context.Features.Get<IExceptionHandlerPathFeature>();
if (exceptionHandlerPathFeature?.Error is AuthorizationException)
{
context.Response.StatusCode = 401;
await context.Response.WriteAsync("Unauthorized");
}
else
{
context.Response.StatusCode = 500;
await context.Response.WriteAsync("Internal Server Error");
}
});
});
通过以上修改,当抛出AuthorizationException
时,客户端将收到返回的401状态码和"Unauthorized"消息。
请注意,以上代码只是示例,实际应用中可能需要根据项目的具体情况进行适当的调整。
领取专属 10元无门槛券
手把手带您无忧上云