c# - IIdentityServerInteractionService 的 GetAuthorizationContextAsync(returnUrl) 在登录时返回 null
问题描述
我使用文档中的模板创建了一个 Identity 4 应用服务器。我定义数据库最初将填充 2 个标准用户。但是,当我尝试使用以前创建的任何用户登录时,页面会刷新并且没有任何反应。所以我调试了它,似乎这部分返回 null,它应该返回用户数据。
代码:
var context = await _interaction.GetAuthorizationContextAsync(returnUrl);
。
存在
IIdentityServerInteractionService 的 _interaction 依赖注入 returnUrl = "/grants";
解决方案
AuthorizationContext
是一组定义登录流程的规则。returnUrl
不仅仅是登录后重定向的URL,也是IdentityServer用来识别客户端的签名(认为是客户端的登录) (即使用IdentityServer的软件,不要与用户混淆)。returnUrl
必须在 IdentityServer 客户端的记录中显式设置 - 无论是在 SQL 表中还是在填充内存客户端的 Quickstart 的 config.cs 中。
returnUrl
被捕获为登录 URL 的参数:https://myidentityserver.com/Account/Login?ReturnUrl=/myreturnurl
。如果 IdentityServer 记录中没有匹配的客户端,GetAuthorizationContextAsync
将返回 null,这是正常的。但是,如果没有客户端,它不应该阻止用户授权,即在 IdentityServer 本身内发生登录,使用它自己的 UI。
推荐阅读
- java - 在改造中从 json 转换
- python - Python:ImportError:DLL加载失败:找不到指定的模块,控制台工作,但项目解释器没有
- c# - 使用 OpenXml 在 asp .net mvc 中导出数据 excel
- python-3.x - Anaconda '\microsoft 在这个时候出乎意料' 错误
- ajax - Cake Php 3.6 - ajax 调用发送空数据
- github - 将本地合并推送到 GitHub 并标记为已合并
- python - 将 numpy 用于包含和完全匹配条件
- powerbi - 在 Power BI 中计算迄今为止的平均年份
- http - 如果 Elm 中的 Http.get 请求收到与预期不同类型的响应,会发生什么?
- angular - 如何显示 * 而不是数字?