Я использую настраиваемые политики.
Желаемый путь пользователя:
- Пользователь вводит адрес электронной почты / пароль на экране 1.
- После успешной проверки экрана 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>