Azure ad b2c 当将来自Facebook的电子邮件作为输入声明传递给自我声明的个人资料时,电子邮件验证框消失

Azure ad b2c 当将来自Facebook的电子邮件作为输入声明传递给自我声明的个人资料时,电子邮件验证框消失,azure-ad-b2c,identity-experience-framework,Azure Ad B2c,Identity Experience Framework,我们想强迫用户提供和验证他们的电子邮件地址,即使他们拒绝从Facebook传递他们的电子邮件声明 我们创建了一个编排步骤,从Facebook回来后调用以下技术配置文件: <TechnicalProfile Id="SelfAsserted-ConfirmEmailSocial"> <DisplayName>Confirm email social</DisplayName> <Protocol N

我们想强迫用户提供和验证他们的电子邮件地址,即使他们拒绝从Facebook传递他们的电子邮件声明

我们创建了一个编排步骤,从Facebook回来后调用以下技术配置文件:

        <TechnicalProfile Id="SelfAsserted-ConfirmEmailSocial">
          <DisplayName>Confirm email social</DisplayName>
          <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
          <Metadata>
            <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
          </Metadata>
          <InputClaims>
            <InputClaim ClaimTypeReferenceId="email" />
          </InputClaims>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="Verified.Email" Required="true" />
          </OutputClaims>
        </TechnicalProfile>

确认电子邮件社交
api.Self断言
如果用户拒绝facebook设置,代码将按预期工作:显示验证控件。 但是,如果用户接受facebook设置,则输入字段和验证控件都将消失。(并且电子邮件会预先填充)

(有人在这里解释说,堆栈溢出控件太蠢,无法意识到您想要验证输入声明),但我们无法让建议的解决方案起作用

我们如何强制验证上一个编排步骤中提供的电子邮件?

更新:
似乎我们可以通过某种方式将输入声明设置为只读来创建一个解决方案。(但只有在它是空的情况下)是的,唯一的选择是将其设置为只读,否则我们假设传入的电子邮件已经过验证,这与Facebook是一样的。如果您更改了电子邮件,则必须对其进行验证。您可以修改JavaScript/css以显示控件。或者在自定义策略中,使用输入声明转换将电子邮件声明复制到新的只读声明id。然后使用输入声明预填充表单。然后使用输出声明显示声明。

是的,Facebook可以验证它,但我们的客户不相信这一点。感谢您花时间解释这一点。要拆开的东西很多。我将尝试第二种方法并返回给您。“使用和输入声明转换将电子邮件声明复制到一个新的只读声明id中。使用输入声明预先填充表单。然后使用输出声明显示声明。”这很有效。