【发布时间】:2018-04-29 10:52:27
【问题描述】:
我有一个使用 Identity Server 4 的 .net 核心应用程序,它为应用程序中的授权创建了许多非标准声明。其中一些非标准声明直接影响应用程序的行为方式并由数据库设置。如果用户在 UI 上执行某些操作,我将需要重置这些声明。
所以我的问题是,如果我在https://github.com/IdentityServer/IdentityServer4.Samples/blob/release/Clients/src/MvcHybrid/Controllers/HomeController.cs 处找到更新令牌,使用混合流程会调用用户信息端点以获取更新的声明列表吗?所以或多或少,无需注销并重新登录即可重置登录。还是我需要手动更新 Claims 主体?
我宁愿不必手动更新主体,让 IS4 完成繁重的工作。
编辑
使用上面的代码,我能够刷新令牌,我看到它正在调用 IS4 并重置 IS4 代码中的声明,但它没有获取用户配置文件,它实际上并没有在客户端更新声明。我无法将声明保存在令牌中,因为令牌变得太大而无法注销,因此我在选项上启用了“GetClaimsFromUserInfoEndpoint”。无论如何以编程方式重置用户配置文件?
【问题讨论】:
标签: c# asp.net identityserver4 asp.net-core-2.0