我正在使用Azure AD B2C(和MSAL),并已注册/登录,编辑配置文件和密码重置策略已启用并正常工作。
但是,如果您正在浏览“编辑配置文件”工作流并选择“恢复帐户”,则我注意到异常,返回的流与链接到登录流的“重置密码”策略不同。
当用户输入身份信息和验证码时,它会返回错误“您的组织尚未设置密码重置策略”,即使我在登录时选择它也可以。
这是我设置密码重置的方法
AuthenticationResult authResult = await ADB2CClient.AcquireTokenAsync(Scopes, GetUserByPolicy(accounts, EditProfilePolicy), UIBehavior.NoPrompt, string.Empty, null, AuthorityEditProfile, App.UiParent);
这就是我设置编辑个人资料的方式
authenticationResult = await ADB2CClient.AcquireTokenAsync(Scopes, firstAccount, UIBehavior.SelectAccount, string.Empty, null, AuthorityResetPassword, App.UiParent);
但是,如上所述,“编辑个人资料”中的“恢复您的帐户”选项显然会触发不同的流程,而我不清楚如何在“政策”中对此进行说明?
我猜你在获得authenticationResult时会传递不同的策略名称。例如,如果是密码重置策略,则传递“AuthorityEditProfile”以获取authenticntciationResult,如果是编辑配置文件,则传递“AuthorityResetPassword”。
你可以改变它并再试一次。
编辑档案:
AuthenticationResult authResult = await ADB2CClient.AcquireTokenAsync(Scopes,GetUserByPolicy(accounts,EditProfilePolicy),UIBehavior.NoPrompt,string.Empty,null,AuthorityEditProfile,App.UiParent);
对于密码重置:
authenticationResult = await ADB2CClient.AcquireTokenAsync(Scopes,firstAccount,UIBehavior.SelectAccount,string.Empty,null,AuthorityResetPassword,App.UiParent);