我编写了一个使用Windows身份验证的ASP.NET Core 1.0网站。我已经实现了授权,并且按预期工作。目前,当给定用户的身份验证失败时,会显示通用的“HTTP 403”错误页面。
如何配置ASP.NET Core以便重定向到我自己的自定义“拒绝访问”页面?
我尝试了本文中概述的方法,但它对我不起作用(可能是因为我使用的是Windows Auth而不是Forms Auth?) How to redirect unauthorized users with ASP.NET MVC 6
任何帮助都将不胜感激。
答案 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}");