【问题标题】:Authorize in ASP.NET CORE Web API在 ASP.NET CORE Web API 中授权
【发布时间】:2023-03-12 10:06:01
【问题描述】:

我在 BaseController 上添加了 [Authorize] 属性。如果没有 JWT 令牌,它会显示 401 错误,我需要自定义该 401 错误。我需要了解应用程序在哪个位置引发 401 错误。谁能帮帮我。

【问题讨论】:

    标签: c# asp.net asp.net-web-api


    【解决方案1】:

    有几种方法可以自定义这种行为,但我认为最直接的一种是写一个custom middleware

    // Startup.Configure method
    
    app.UseRouting();
    
    app.Use(async (context, next) =>
    {
        await next();
    
        if (context.Response.StatusCode == (int)HttpStatusCode.Unauthorized)
        {
            await context.Response.WriteAsync("Token Validation Has Failed. Request Access Denied");
        }
    });
    
    app.UseAuthentication();
    
    app.UseAuthorization();
    
    app.UseEndpoints();
    
    

    【讨论】: