在IdentityServer4中自定义form_post响应视图



我使用的是IdentityServer4,当用户使用";form_post";响应模式。

当连接/授权路由被调用时;form_post";在响应模式下,它返回一个带有提交表单的空白页面,所以我正试图找出如何向该页面添加一些自定义html。

我在IdentityServer3中发现了这个问题,它涵盖了我的确切用例,但我不知道如何在IdentiityServer4中实现它,因为它没有使用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;
}
}

该页面在IdentityServer中进行硬编码,其代码位于AuthorizeResult.cs类中。

所以我想,除非您自己重新编译IdentityServer,否则自定义它将很困难。

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

最新更新