更新:我终于能够让我的自定义错误页面呈现。我不得不
<div id="api"></div>
在我看来使用。
我在这里的最后一个问题(这似乎是不可能的)是将我的一个声明的值(从我调用它时传递给我的 B2C 策略的 idToken)添加到我的 ContentDefintion 的 LoadUri 中。
这是我的技术资料:
<TechnicalProfile Id="SelfAsserted-SigningNotReadyError">
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="GetUser" />
</InputClaimsTransformations>
<IncludeTechnicalProfile ReferenceId="SelfAsserted-UserError" />
</TechnicalProfile>
<TechnicalProfile Id="SelfAsserted-UserError">
<DisplayName>Unsolicited error message</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.signingerrorlink</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="errorMessage" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="errorMessage" />
</OutputClaims>
</TechnicalProfile>
和我的 ContentDefinition 注意:看看我必须如何硬编码 GUID。:( 签名错误?用户=7ec00437-1ad9-4acc-a285-a729003ca99d
<ContentDefinition Id="api.signingerrorlink">
<LoadUri>https://something.azurewebsites.net/signingerror?user=7ec00437-1ad9-4acc-a285-a729003ca99d</LoadUri>
<RecoveryUri>https://something.azurewebsites.net/error</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
<Metadata>
<Item Key="DisplayName">Signing Not Ready</Item>
</Metadata>
</ContentDefinition>
原来的:
我在这里泡菜。我一直在浏览stackoverflow和互联网上的许多帖子。我希望你能帮助我。
我有一个自定义 B2C 策略,它基本上接受一个令牌,执行一些功能,然后最后返回一个访问令牌。这很好用。我的问题是我需要定义一个步骤,该步骤将根据先决条件触发技术配置文件。前提条件实际上很好用。
我缺少的是一种构建技术配置文件/内容定义以在另一个项目中加载我自己的错误页面(.Net Core 3 控制器)但完全可访问(控制器/SigningErrorController)的方法。
我的步骤:
<OrchestrationStep Order="7" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="true">
<Value>isReadyForSigning</Value>
<Value>True</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="SelfAsserted-SigningNotReady" TechnicalProfileReferenceId="SelfAsserted-SigningNotReadyError" />
</ClaimsExchanges>
</OrchestrationStep>
第2部分!我需要向这个自定义错误页面传递一个值。在这种情况下的指导。
如果我将 TP 用于无效链接,则此方法有效。我尝试了各种自定义内容定义,类似于:
<ContentDefinition Id="api.signingerrorlink">
<LoadUri>https://something.azurewebsites.net/error</LoadUri>
<RecoveryUri>https://something.azurewebsites.net/signingerror</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:globalexception:1.1.0</DataUri>
<Metadata>
<Item Key="DisplayName">Error page</Item>
</Metadata>
</ContentDefinition>
...签名错误是我要访问的自定义错误页面。如果我运行它,策略会完全跳过这一步。如果我使用无效的链接 TP,那么它可以工作。我还试图弄清楚如何将值传递给错误页面。伙计们,我很茫然。
您可以提供的任何帮助将不胜感激。