我有自定义策略,我正在尝试使用 TechnicalProfile 中的输出声明到 ValidationTechnicalProfile 中。 OutputClaim 可以有一组值,看起来像:
<OutputClaim ClaimTypeReferenceId="PolicyId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:PolicyId}" />
在 ValidationTechnicalProfile 中,我尝试比较 PolicyId 但未设置和 。如果我尝试将硬编码值设置为默认值,ValidationTechnicalProfile 能够运行验证:
<ValidationTechnicalProfile ReferenceId="SetActivity_BasedOnPolicyId_Yes" ContinueOnError="true">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="**false**">
<Value>policyId</Value>
<Value>B2C_1A_SignIn</Value>
<Action>SkipThisValidationTechnicalProfile</Action>
</Precondition>
</Preconditions>
</ValidationTechnicalProfile>
...
<ValidationTechnicalProfile ReferenceId="SetActivity_BasedOnPolicyId_Yes" ContinueOnError="true">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="**true**">
<Value>policyId</Value>
<Value>B2C_1A_SignIn</Value>
<Action>SkipThisValidationTechnicalProfile</Action>
</Precondition>
</Preconditions>
</ValidationTechnicalProfile>
我在这里做错了什么?我只是想针对所使用的策略进行验证(我们很少)。
您设置了吗:
我觉得索赔解决有时会以一种奇怪的顺序发生。尝试将 PolicyId 设置为输入声明,并在其中解析声明,而不是在输出声明中(但仍保留输出声明)