Как проверить, что введенное значение совпадает с заданным значением? - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь убедиться, что введенный пользователем код подтверждения электронной почты совпадает с кодом, возвращенным ранее другим техническим профилем. Этот этап путешествия работает, как ожидается, когда пользователь вводит правильный код, но зависает, когда пользователь вводит неправильный код. Что я делаю неправильно. Вот техническая политика, выполненная моим шагом в пути:

        <TechnicalProfile Id="EnterEmailVerifyCode">
      <DisplayName>Email entry</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="IpAddressClaimReferenceId">IpAddress</Item>
        <Item Key="ContentDefinitionReferenceId">api.localaccountsignup</Item>
        <Item Key="language.button_continue">Continue</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
      </CryptographicKeys>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="email" />
        <InputClaim ClaimTypeReferenceId="emailVerificationCodeEntered" />
      </InputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="emailVerificationCodeEntered" />
      </OutputClaims>
      <OutputClaimsTransformations>
         <OutputClaimsTransformation ReferenceId="AssertEmailVerificationCodesAreEqual" />
      </OutputClaimsTransformations>
    </TechnicalProfile> 

1 Ответ

1 голос
/ 16 апреля 2019

Самоутвержденный технический профиль должен вызывать преобразование утверждений в качестве технического профиля проверки .

Объявить технический профиль преобразования утверждений, который вызывает преобразование утверждений:

<TechnicalProfile Id="ValidateEmailVerificationCodes">
  <DisplayName>Validate Email Verification Codes</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="emailVerificationCodeEntered" />
    <InputClaim ClaimTypeReferenceId="emailVerificationCodeGenerated" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="emailVerificationCodeEntered" />
  </OutputClaims>
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertEmailVerificationCodesAreEqual" />
  </OutputClaimsTransformations>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

Затем вызовите этот технический профиль преобразования утверждений из самоутвержденного технического профиля в качестве технического профиля проверки:

<TechnicalProfile Id="EnterEmailVerifyCode">
  ...
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    ...
    <Item Key="UserMessageIfClaimsTransformationStringsAreNotEqual">The verification code is invalid</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" />
    <InputClaim ClaimTypeReferenceId="emailVerificationCodeEntered" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="emailVerificationCodeEntered" />
  </OutputClaims>
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="ValidateEmailVerificationCodes" />
  </ValidationTechnicalProfiles>
</TechnicalProfile>

UserMessageIfClaimsTransformationStringsAreNotEqual указывает сообщение об ошибке, которое отображается при преобразовании утвержденийвыдает ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...