首页 > 解决方案 > 在 ASP.NET Web API Core 中,如何强制 401 响应

问题描述

我在我的 ASP.NET Core Web API 服务中使用 OAuth2 和 OIDC。当我得到一个 JWT 令牌时,它会验证它。

就我而言,我的发行人不匹配。我能够看到这一点,因为验证的结果在JwtBearerEvents事件 中浮出水面OnAuthenticationFailed。这就是我可以知道我需要返回 401 的地方。

那时如何将我的服务设置为返回 401?

标签: asp.net-coreoauth-2.0openid-connectasp.net-core-3.1

解决方案


我没有机会在实际项目中对此进行测试,但如果您只想返回 401,那么您可能想尝试以下操作:

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

推荐阅读