0

例如...

我在 InputClaims 中试过这个

<InputClaim ClaimTypeReferenceId="Step" AlwaysUseDefaultValue="true" DefaultValue="SelfAsserted-Social-Step01" />

而在 OutputClaims

<OutputClaim ClaimTypeReferenceId="Step" />

因此,以这种方式在页面中捕获所有 Javascript(客户端):

var stepPage = $("#Step").text();

switch (stepPage) {
    case "OS-SignIn":
        do_this();
}

为我工作,但它看起来是一种解决方法......

最后,我的问题是:我如何以复杂的方式实现这种行为,比如 B2C 创建的 javascript 中的 var 或类似的东西?更多本土...

4

1 回答 1

0

对于此用例,您可以为每个技术配置文件使用不同的内容定义 ID。然后使用匹配的 id 定义匹配的内容定义,以及该特定技术配置文件的相应 HTML dataURI。

这样,您无需在前端确定正在呈现哪些编排步骤,因为您将拥有每个编排步骤特定的 HTML。

请参阅下面我如何创建 api.page1 作为此技术配置文件的内容定义。对每个技术配置文件重复该模式。然后每个页面将引用一个唯一的 HTML 文件。

    <ContentDefinition Id="api.page1">
      <LoadUri>https://your-storage-account.blob.core.windows.net/your-container/customize-ui-page1.html</LoadUri>
      <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
      <DataUri>urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0</DataUri>
      <Metadata>
        <Item Key="DisplayName">Signin and Signup</Item>
      </Metadata>
    </ContentDefinition>
<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
          <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="SignUpTarget">SignUpWithLogonEmailExchange</Item>
            <Item Key="setting.operatingMode">Email</Item>
            <Item Key="ContentDefinitionReferenceId">api.page1</Item>
于 2020-09-24T17:36:59.197 回答