在 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;
}
我在 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;
}