我的启动中有这个
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错误?
如果有什么不同;它是返回401/403错误的Web API .NET Core 2.1,以及处理该错误的MVC Core MVC 2.1应用。
答案 0 :(得分:2)
配置状态代码页 默认情况下,应用程序不为HTTP状态代码(例如404未找到)提供丰富的状态代码页。要提供状态代码页,请使用状态代码页中间件。
Microsoft.AspNetCore.Diagnostics
软件包提供了中间件,该软件包在Microsoft.AspNetCore.App
元软件包中提供。
向Startup.Configure方法添加一行:
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在此处了解相关文档