【发布时间】:2020-04-21 16:33:27
【问题描述】:
我们的高级开发人员最近离开了我们,我正试图游入 IdentityServer 的海洋。
有几件事我不明白,也找不到相关信息。
例如,当您运行客户端应用程序时,它会重定向到 IdentityServer/Account/Login,并带有一个名为 returnUrl 的参数。
returnUrl 似乎有很多用途,例如使用以下命令检索授权上下文:
await _interaction.GetAuthorizationContextAsync(returnUrl);
我的第一个问题是:
returnUrl 是从哪里来的?它是如何/在哪里创建的?
第二个问题是:
有没有办法在您登录后将其存储在客户端应用程序中的某个位置? 我的意思是,在客户端应用程序中,我们必须发送邮件来创建新帐户。 这些邮件将新用户重定向到 IdentityServer 的“注册”页面。 我想做的是让 returnUrl 在这里将新用户重定向到正确的客户端应用程序。
感谢您的宝贵时间!
编辑:
这是在我的客户端(在 IdentityServer 中)设置的返回 url:
RedirectUris = {"http://localhost:44349" + "/signin-oidc"}
这是我启动客户端应用程序时 IdentityServer 中的 Login 方法收到的 returnUrl
"/connect/authorize/callback?client_id=MyApplication_Web&redirect_uri=http%3A%2F%2Flocalhost%3A44349%2Fsignin-oidc&response_type=code%20id_token&scope=openid%20offline_access%20roles%20Cri_Identity_Serveur_Api.Full_Access&response_mode=form_post&nonce=637230882720491348.YmQzODA4ZTQtNDczZS00OWYwLWFmNmEtYjA2NmQ3YmIwZjg2YzdiODk4ZDYtMTU1YS00ZTM0LWE0MGEtNDVjOWNkZWFiYTM1&state=CfDJ8Ly2XCz96vdGkR4YQuJ4jeE-v9P4l1W7fLWpJcCGZpt1rMpXyWqEGdnaeRZfiZy4M4Z79LcixUbo06zImhsxwbgyV4hK82qmn0mI6wkrxwraT1tH3XNCdSXCfUJqwk_hZguMSwspZDEN6r1WxnZsU9kT8MHrb9qpzsMOMzsotVzToEjgMtxIeoRfqFSoK8ZfUXBkSw__qxVyIe1lCs96-I--ufZSyO2pBe2kfau-ah7eR5-9oopxX6x1k0tzFHAk6Y3_jMqGysES_GmmfeUJvXXFIR35Rc-IaxU1igswmL2h1IUS-0DQ98Tv_Gf3hirnS87SU87aSJhajgn2YmARXWc&x-client-SKU=ID_NETSTANDARD2_0&x-client-ver=5.3.0.0"
似乎要使用await _interaction.GetAuthorizationContextAsync(returnUrl); 检索自动化上下文,returnUrl 必须是带有"/connect/authorize/callback?..." 的整个网址
【问题讨论】:
标签: asp.net-core identityserver4