在 ASP.NET Web API Core 中,如何强制执行 401 响应

In ASP.NET Web API Core, how can I force a 401 response

我在 ASP.NET 核心 Web API 服务中使用 OAuth2 和 OIDC。当我获得 JWT 令牌时,它会对其进行验证。

就我而言,我的发行人不匹配。我能够看到这一点,因为验证结果显示在 JwtBearerEvents 事件 OnAuthenticationFailed 中。这就是我知道我需要 return 401 的地方。

此时我如何将服务设置为 return 401?

我还没有机会在真实项目中对此进行测试,但如果您只想 return 一个 401,那么您可能想尝试类似的方法:

OnAuthenticationFailed = context =>
{
    context.Response.StatusCode = 401; 
    context.Response.WriteAsync("Unauthorized").Wait();
    return Task.CompletedTask;
}