首页 > 解决方案 > B2C 自定义策略:在登录页面添加取消按钮

问题描述

我想在我的登录页面上有一个“取消”按钮。此功能默认不可用,有一个功能请求

这个问题表明可以使用自定义页面来实现。我的问题是:如何?我尝试修改我们的自定义 HTML,但无法让 UI 显示它。我希望它的行为类似于注册和密码重置期间可用的“取消”。

到目前为止,我们只有默认占位符:

<custom HTML>
...
                <div id="api" data-name="Unified">
                </div>
...
<custom HTML>

在看了这个例子之后,我尝试了这样的事情:


<custom HTML>
...
        <div id="api" data-name="Unified">
          <div class="buttons">
              <button id="continue">
                  Continue
              </button>
              <button id="cancel">
                  Cancel
              </button>
          </div>
        </div>
...
<custom HTML>

按钮未呈现。如果我将它们移出占位符,它们会显示出来,但不做任何事情。我们正在使用自定义策略。

例如,我使用自定义策略启动包(本地帐户)重新开始。

在此处输入图像描述

通过更改编排步骤类型,我可以在此示例中显示一个取消按钮。这消除了注册的能力,如果我需要选择身份提供者,它就不再起作用。

<OrchestrationStep Order="1" Type="ClaimsExchange" ContentDefinitionReferenceId="api.signuporsignin">

验证失败:在租户“xxx.onmicrosoft.com”的策略“B2C_1A_XXX”中发现 1 个验证错误。租户“xxx.onmicrosoft.com”的策略“B2C_1A_xxx”中的用户旅程“SignUpOrSignIn”包含第 2 步和 2 个声明交流。它必须在声明提供者选择之前,以确定可以使用哪个声明交换。

标签: azureazure-ad-b2cidentity-experience-framework

解决方案


只要我不需要“注册”或 ClaimsProviderSelection,似乎我可以切换编排步骤的类型。如果我需要 ClaimsProviderSelection,我无法获得有效的保单。

这并不能完全解决我的问题,因为除了本地帐户之外,我至少还需要有社交登录的可能性。密码重置也消失了...

        <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
          <ClaimsProviderSelections>
            <ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninEmailExchange" />
          </ClaimsProviderSelections>
          <ClaimsExchanges>
            <ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
          </ClaimsExchanges>
        </OrchestrationStep>

将第一行更改为:

        <OrchestrationStep Order="1" Type="ClaimsExchange" ContentDefinitionReferenceId="api.signuporsignin">

在此处输入图像描述


推荐阅读