我们正在实施“嵌入式密码重置”,这是新推荐的做法。一旦我们点击 Forgot your password?
链接,重置子旅程就会按预期被调用。
我们的重置密码历程如下:
<SubJourney Id="PasswordReset" Type="Call">
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="ClaimsExchange">
<!-- This orchestration step never occurs. The user is never prompted for their email address. -->
<ClaimsExchanges>
<ClaimsExchange Id="PasswordResetUsingEmailAddressExchange" TechnicalProfileReferenceId="LocalAccountDiscoveryUsingEmailAddress" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="NewCredentials" nicalProfileReferenceId="LocalAccountWritePasswordUsingObjectId" />
</ClaimsExchanges>
</OrchestrationStep>
</OrchestrationSteps>
</SubJourney>
到目前为止,我们的代码是直接从教程和示例代码中提取的。我们该如何解决这个问题,还有其他人遇到过同样的问题吗?
这是B2C系统中的一个bug——初始组合登录和 注册步骤似乎设置了
声明,即使用户点击了 “忘记密码”链接。这
LocalAccountDiscoveryUsingEmailAddress配置文件尝试使用 (空白)声明不提示用户输入地址,跳转 到密码写入步骤,但没有拿起帐户来写入 密码为.我们通过创建新的resetEmail
声明来解决这个问题 仅由帐户发现和密码写入配置文件使用。
您的代码:
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="NewCredentials" nicalProfileReferenceId="LocalAccountWritePasswordUsingObjectId" />
</ClaimsExchanges>
</OrchestrationStep>
ClaimsExchange 技术配置文件将“nicalProfileReferenceId”作为属性,而不是TechnicalProfileReferenceId
。