重定向到ASP.NET Core的自定义“访问被拒绝”页面

时间:2016-07-20 22:52:34

标签: authentication asp.net-core

我编写了一个使用Windows身份验证的ASP.NET Core 1.0网站。我已经实现了授权,并且按预期工作。目前,当给定用户的身份验证失败时,会显示通用的“HTTP 403”错误页面。

enter image description here

如何配置ASP.NET Core以便重定向到我自己的自定义“拒绝访问”页面?

我尝试了本文中概述的方法,但它对我不起作用(可能是因为我使用的是Windows Auth而不是Forms Auth?) How to redirect unauthorized users with ASP.NET MVC 6

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:14)

使用the status code pages middleware

app.UseStatusCodePages(async context => {
  if (context.HttpContext.Response.StatusCode == 403)
  {
     // your redirect
  }
});

您还可以通过app.UseStatusCodePagesWithRedirects选择更通用的方法。中间件可以处理重定向(具有相对或绝对URL路径),将状态代码作为URL的一部分传递。例如,以下内容将重定向到~/errors/403 403错误:

app.UseStatusCodePagesWithRedirects("~/errors/{0}");