Запуск проверки электронной почты

Я использую настраиваемые политики.

Желаемый путь пользователя:

  1. Пользователь вводит адрес электронной почты / пароль на экране 1.
  2. После успешной проверки экрана 1 пользователь переходит на экран 2. На экране 2 пользователь должен ввести код, отправленный на его электронную почту. (Обратите внимание, что пользователь уже подтвердил адрес электронной почты во время регистрации)

Я застрял в том, чтобы заставить 2 работать. Текущая политика выглядит так: Шаг 1 выводит заявку по электронной почте.

На шаге 2 в качестве входных данных используется электронное письмо.

На шаге 2 отображается редактируемое текстовое поле с предварительно заполненным адресом электронной почты. Код не запрашивается. Однако, если электронное письмо редактируется, запрашивается код.

<TechnicalProfile Id="VerifyEmailAddress">
  <DisplayName>Local Account Signin</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>
  <IncludeInSso>false</IncludeInSso>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="signInName" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="Verified.Email" Required="true"/>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
    <OutputClaim ClaimTypeReferenceId="authenticationSource" />
  </OutputClaims>
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="AAD-UserReadUsingEmailAddress" />
  </ValidationTechnicalProfiles>
</TechnicalProfile>   

person Lingeshwaran Palaniappan    schedule 04.06.2017    source источник


Ответы (1)


Да, это доставило мне много проблем,

Я в основном использую преобразование претензий, чтобы сделать это

<InputClaimsTransformations>
   <InputClaimsTransformation ReferenceId="CopyClaimToreadOnly" />
</InputClaimsTransformations>
<InputClaims>
 <InputClaim ClaimTypeReferenceId="myAlreadyPopulatedClaim" />
 <InputClaim ClaimTypeReferenceId="myAlreadyPopulatedClaim-Readonly" />
</InputClaims>
<OutputClaims>
   <OutputClaim ClaimTypeReferenceId="myAlreadyPopulatedClaim-Readonly" 
PartnerClaimType="Verified.Email" />
 </OutputClaims>

Элемент управления недостаточно умен, чтобы понять, что вы заполнили претензию и все еще хотите выполнить проверку, он ожидает, что ввод электронной почты и проверка будут выполняться на одной и той же странице, когда вы разделите ее, вы должны выполнить это копирование претензии

Надеюсь это поможет

person whatisthejava    schedule 08.06.2017
comment
Что такое входная претензияпреобразование CopyClaimToreadOnly - это то, что вы создали сами? Не могли бы вы случайно поделиться им? - person Michiel Cornille; 07.05.2020
comment
Не думаю, что у меня больше есть код, но я думаю, что весь код заключался в переносе копирования заявки в заявку только для чтения - person whatisthejava; 21.05.2020