我是从Identity Server 3迁移的,当我们需要从授权端点重定向到帐户控制器时,我有一个关于控制哪些页面被重定向的问题。
当前解决方案使用UserService上的PreAuthenticateAsync方法在授权请求中结合prompt = login查找自定义acr_value键/值。
示例用例允许深入链接到“注册”页面,或者如果用户已登录则允许进入“管理”配置文件页面。
在IDSrvr4检测到登录重定向后,我无法找到一个简单的钩子来控制我们去的地方。
我找到了IAuthorizeInteractionResponseGenerator接口,并想知道自定义实现(或覆盖IdentityServer4.ResponseHandling.AuthorizeInteractionResponseGenerator中某个ProcessXXXAsync方法的默认行为)是否合适,但这感觉就像一个大锤的方法。
IdSrv github repo中的QuickStart场景#6是我尝试重定向到Register时想要完成的一个接近的例子,或者如果登录则管理控制器
提前致谢
答案 0 :(得分:2)
您可以为未经身份验证的用户配置您要访问的页面,如下所示:
services.AddIdentityServer(options => options.UserInteraction.LoginUrl = "/account/login");
要将经过身份验证的用户发送回该页面,您需要实施IAuthorizeInteractionResponseGenerator
- 或者更确切地说是从默认用户派生。