Поле подтверждения электронной почты исчезает при передаче электронной почты из Facebook в качестве входного утверждения в самоутвержденный профиль - PullRequest
1 голос
/ 07 мая 2020

Мы хотим заставить пользователей предоставлять и проверять свой адрес электронной почты, даже если они отказываются передавать заявку на адрес электронной почты от Facebook.

enter image description here

Мы создали этап оркестрации, который вызывает следующий технический профиль после возвращения из 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>

Если пользователь отклоняет настройку facebook, код работает, как ожидалось: Отображается элемент управления проверкой. Однако, если пользователь принимает настройку facebook, и поле ввода, и элемент управления проверкой исчезают. (И электронное письмо заполняется заранее)

enter image description here

(Кто-то объясняет здесь переполнение стека, что элемент управления слишком глуп, чтобы понять, что вы хотите проверить входной запрос { ссылка }), но мы не смогли заставить предлагаемое решение работать.

Как мы можем принудительно проверить электронные письма, предоставленные на предыдущем этапе оркестрации?

Обновление: Кажется, мы могли бы создать обходной путь, сделав входное утверждение как-то доступным только для чтения. (Но только если он был пуст).

1 Ответ

1 голос
/ 09 мая 2020

Да, единственный вариант - сделать его доступным только для чтения, поскольку в противном случае мы предполагаем, что переданное электронное письмо уже проверено, то есть с Facebook. Если вы измените адрес электронной почты, вы должны его подтвердить. Вы можете изменить JavaScript / css, чтобы отображать элементы управления. Или в настраиваемой политике используйте преобразование входного утверждения, чтобы скопировать электронное утверждение в новый идентификатор утверждения, доступный только для чтения. Затем предварительно заполните форму, используя входное утверждение. Затем отобразите претензию, используя выходную претензию.

...