在IdentityServer4中自定义表单_post响应视图

在IdentityServer4中自定义表单_post响应视图,identityserver4,Identityserver4,我使用的是IdentityServer4,我想在使用“form_post”响应模式授权/重定向用户时添加一些简单的可视加载指示器 当使用“form_post”响应模式调用connect/authorize路由时,它会返回一个带有提交表单的空白页面,因此我试图找出如何向该页面添加一些自定义html 但我没有找到如何在IdentityServer4中实现这一点,因为它没有使用3使用的ViewService结构 我沿着自定义授权交互响应生成器的路径启动,但是如果我从这里重定向到自定义视图,但我不确定该

我使用的是IdentityServer4,我想在使用“form_post”响应模式授权/重定向用户时添加一些简单的可视加载指示器

当使用“form_post”响应模式调用connect/authorize路由时,它会返回一个带有提交表单的空白页面,因此我试图找出如何向该页面添加一些自定义html

但我没有找到如何在IdentityServer4中实现这一点,因为它没有使用3使用的ViewService结构

我沿着自定义授权交互响应生成器的路径启动,但是如果我从这里重定向到自定义视图,但我不确定该自定义视图需要什么样的外观来处理流程的表单发布部分

public class CustomAuthorizeInteractionResponseGenerator : AuthorizeInteractionResponseGenerator
{
    //...

    public override async Task<InteractionResponse> ProcessInteractionAsync(ValidatedAuthorizeRequest request, ConsentResponse consent = null)
    {
        var interactionResponse = await base.ProcessInteractionAsync(request, consent);

        if (interactionResponse.IsLogin ||
            interactionResponse.IsError ||
            interactionResponse.IsConsent)
        {
            return interactionResponse;
        }

        if (request.ResponseMode == "form_post")
        {
            return new InteractionResponse
            {
                RedirectUrl = "/custom_form_post"
            };
        }

        return interactionResponse;
    }
}
公共类CustomAuthorizationInteractionResponseGenerator:AuthorizationInteractionResponseGenerator
{
//...
公共重写异步任务ProcessInteractionAsync(ValidatedAuthorizerRequest请求,ApproverResponse Approve=null)
{
var interactionResponse=wait base.processinteractionsync(请求、同意);
if(interactionResponse.IsLogin||
interactionResponse.IsError||
interactionResponse.IsConsent)
{
返回交互响应;
}
if(request.ResponseMode==“form_post”)
{
返回新的InteractionResponse
{
重定向URL=“/custom\u form\u post”
};
}
返回交互响应;
}
}

该页面在IdentityServer中硬编码,其代码位于类中

所以我想定制它会很困难,除非你自己重新编译IdentityServer


另一个选项可能是自定义同意屏幕,并在返回该页面之前向用户显示一些内容。

为什么需要自定义此重定向页面上的HTML?@ToreNestenius有时,根据网络条件或重定向到的内容,您可以在此空白页面上花费几秒钟。特别是当一个过程在一个新的标签页中启动时,用户可能会感到困惑。你对我的答案满意吗?还是缺少什么?如果没有,请将我的答案标记为已接受。