【发布时间】:2021-04-16 18:50:12
【问题描述】:
我们有一个连接到我们的 B2C 环境的 .net5 剃须刀应用程序。在应用程序中,我们有一个更新一些用户详细信息(包括他们的姓名)的过程。我们目前正在应用程序的导航栏中显示他们的名字,并从User.Identity.Name 获取。
因此,当用户名更新时,User.Identity.Name 中保存的值不会更新,因此名称保持原样。
理想情况下,我们希望将用户传递到 B2C 中的屏幕以更新令牌,该令牌将获取更新后的名称,然后一次性返回应用程序,而无需用户执行任何操作。或者,我们需要在后台调用更新令牌,然后当页面重新加载时,由于令牌已更新,名称将被更新。
目前我们看不到这样做的方法,因为asp-area="MicrosoftIdentity" 下可用的asp-actions 仅限于:Challenge、EditProfile、ResetPassord、SignIn 和 SIgnOut。
如果我们通过 ResetPAssword 用户流传递用户,然后返回到应用程序,则令牌已更新,我们会取回更新后的用户名。但是,如果他们只更新他们的名字,我们就不想经历这个过程。
我们该怎么做呢?
【问题讨论】:
-
如果您再次让他们通过登录,他们应该被发送到 /authorize with SSO 并获得一个新的令牌。这就是我们建议使用我们的个人资料编辑政策的原因,您甚至可以使用 iframe 将其嵌入到您的应用中。
标签: azure-ad-b2c