Identity Server 4:在 OnTokenValidated 中重定向或显示错误消息

Identity Server 4: Redirect or Show Error Message in OnTokenValidated

在我的 Web 应用程序中,在用户通过交互式登录页面进行身份验证后,我想在用户通过身份验证后在 OnTokenValidated 中做一些额外的验证,如果失败,那么我想显示一个带有适当留言。

我该怎么做?我试过了:

    private Task HandleOpenIdConnectOnTokenValidated(TokenValidatedContext context)
    {
        if (some condition fails...)
        {
                context.HttpContext.Response.Redirect("/home/notregistered");
                return Task.FromResult(-1);
            }
        }
        return Task.CompletedTask;
    }

另一个选项是抛出异常,但它显示了一个不愉快的错误。如果这是 best/only 选项,我如何指定自定义错误页面并根据抛出的异常显示自定义内容?

谢谢

我会使用内置的授权机制来实现额外的授权要求。

可能使用 IAuthorizationRequirement,如 here 所述。它允许您创建非常灵活的授权规则。