Мы хотим заставить пользователей предоставлять и проверять свой адрес электронной почты, даже если они отказываются передавать заявку на адрес электронной почты от 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>
Если пользователь отклоняет настройку facebook, код работает, как ожидалось: Отображается элемент управления проверкой. Однако, если пользователь принимает настройку facebook, и поле ввода, и элемент управления проверкой исчезают. (И электронное письмо заполняется заранее)
(Кто-то объясняет здесь переполнение стека, что элемент управления слишком глуп, чтобы понять, что вы хотите проверить входной запрос { ссылка }), но мы не смогли заставить предлагаемое решение работать.
Как мы можем принудительно проверить электронные письма, предоставленные на предыдущем этапе оркестрации?
Обновление: Кажется, мы могли бы создать обходной путь, сделав входное утверждение как-то доступным только для чтения. (Но только если он был пуст).