代码之家  ›  专栏  ›  技术社区  ›  w0051977

我怎样才能路由401和403错误?

  •  -2
  • w0051977  · 技术社区  · 7 年前

    在我的创业公司里有这样的东西:

    app.UseMvc(routes =>
    {
    routes.MapRoute(
        "404-PageNotFound",
        "{*url}",
        new { controller = "Home", action = "Error" }
        );
    });
    

    它会按预期将404个错误重定向到错误页面。401和/或403错误怎么办?我试过:

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            "401",
            "{*url}",
            new { controller = "Home", action = "Error" }
            );
    });
    

    我今天花了几个小时在谷歌上搜索,但什么也没找到。其他一些答案讨论了如何创建这样的处理程序: Override AuthorizeAttribute in ASP.Net Core and respond Json status .然而,我认为这对我来说是过分的。

    我怎样才能路由401或403错误?

    如果有什么不同;这是一个Web API。NET Core 2.1返回401/403错误,以及处理该错误的MVC Core MVC 2.1应用程序。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Nkosi    7 年前

    配置状态代码页 默认情况下,应用程序不会为HTTP状态代码(例如404 Not Found)提供丰富的状态代码页。要提供状态代码页,请使用状态代码页中间件。

    中间件由 Microsoft.AspNetCore.Diagnostics 软件包,可在 Microsoft.AspNetCore.App 元包。

    在启动中添加一行。配置方法:

    Image

    app.UseStatusCodePages(async context =>
    {
        context.HttpContext.Response.ContentType = "text/plain";
    
        await context.HttpContext.Response.WriteAsync(
            "Status code page, status code: " + 
            context.HttpContext.Response.StatusCode);
    });
    

    Link 以下是相关文档

    推荐文章