我们有一个.net5剃须刀应用程序,它连接到我们的B2C环境。在应用程序中,我们有一个更新用户详细信息的过程,包括他们的姓名。我们目前正在应用程序的导航栏中显示他们的名字,并从User.Identity.Name
中获取。
因此,当用户名更新时,User.Identity.Name
中的值不会更新,因此名称保持原样。
理想情况下,我们希望将用户传递到B2C中的屏幕来更新令牌,该令牌将获得他们更新的名称,然后一次性返回到应用程序,而用户无需做任何事情。或者,我们需要在后台调用以更新令牌,然后当页面重新加载时,由于令牌已经更新,名称将被更新。
目前我们看不到这样做的方法,因为asp-area="MicrosoftIdentity"
下可用的asp-actions
仅限于:Challenge、EditProfile、ResetPassord、SignIn和SIgnOut。
如果我们将用户通过ResetPAssword用户流,然后返回到应用程序,那么令牌已经更新,我们将返回更新后的用户名。然而,如果他们只更新自己的名字,我们就不想经历这个过程。
我们该怎么做?
正如Jas Suri-MSFT在上面评论的那样,实现这一点的方法是将用户传递给SignUpSignIn策略,因为他们已经通过了身份验证,所以他们将通过策略屏幕传递回应用程序,而无需任何用户交互。