【问题标题】:Pre-Condition evaluation for validation technical profile in azure ad b2c custom policy is not workingazure ad b2c 自定义策略中验证技术配置文件的前提条件评估不起作用
【发布时间】:2026-01-27 12:00:02
【问题描述】:

我的技术资料有 3 个输出声明。这三个之一是“RadioSingleSelect”。根据为单选按钮选择的值,需要决定是否为该技术配置文件工作的验证配置文件。以下是我的技术资料和创建的声明类型

     <ClaimType Id="IsVisible">
        <DisplayName>Is this visble?</DisplayName>
        <DataType>boolean</DataType>
        <UserInputType>RadioSingleSelect</UserInputType>
        <Restriction>
          <Enumeration Text="Yes" Value="true" SelectByDefault="false" />
          <Enumeration Text="No" Value="false" SelectByDefault="false" />
        </Restriction>
      </ClaimType>
    </ClaimsSchema>
<TechnicalProfile Id="Profile1">
    <DisplayName>Profile1</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>
        <Item Key="EnforceEmailVerification">False</Item>           
    </Metadata>
    <CryptographicKeys>
        <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
    </CryptographicKeys>
    <InputClaims>
        <InputClaim ClaimTypeReferenceId="name" />
        <InputClaim ClaimTypeReferenceId="code" />
    </InputClaims>
    <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="name" Required="true" /> 
        <OutputClaim ClaimTypeReferenceId="verificationCode" Required="true" />
        <OutputClaim ClaimTypeReferenceId="IsVisible" />
    </OutputClaims>
    <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="CheckIsVisible">
        <Preconditions>
        <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
            <Value>IsVisible</Value>
            <Value>true</Value>
            <Action>SkipThisValidationTechnicalProfile</Action>
        </Precondition>
    </Preconditions>
    </ValidationTechnicalProfile>
    </ValidationTechnicalProfiles>
    <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>

我的预期输出是,如果用户为“IsVisible”选择“是”,那么我需要跳过验证技术配置文件“CheckIsVisible”

【问题讨论】:

    标签: azure-ad-b2c


    【解决方案1】:

    声明类型为布尔值时区分大小写,更改

        <ValidationTechnicalProfile ReferenceId="CheckIsVisible">
            <Preconditions>
            <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
                <Value>IsVisible</Value>
                <Value>true</Value>
                <Action>SkipThisValidationTechnicalProfile</Action>
            </Precondition>
        </Preconditions>
    

        <ValidationTechnicalProfile ReferenceId="CheckIsVisible">
            <Preconditions>
            <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
                <Value>IsVisible</Value>
                <Value>True</Value>
                <Action>SkipThisValidationTechnicalProfile</Action>
            </Precondition>
        </Preconditions>
    

    【讨论】:

    最近更新 更多