我一直在使用关于 ContentDefinitions 的 b2c starter packs 和 MSDN docs,以及 Azure B2C 产品的各个其他方面。
任何尝试过实施自定义政策的人都意识到,文档并不总是那么彻底或明确,而且通常在语法上不正确或缺少细节。
考虑到这一点,我想知道:
<Item Key="setting.showSignupLink">false</Item>
添加到 ContentDefinition 的 MetaData 来向 ContentDefinition 添加“注册”屏幕链接,但是在使用 api.signuporsignin
ContentDefinition 时,此链接似乎是开箱即用的。 <Item Key="setting.showSigninLink">false</Item>
添加到我的 ContentDefinition 的 MetaData 块中,但无济于事(我在 MSDN 文档中的任何地方都没有找到,只是想尝试一下)。澄清一下,在注册/登录流程中,我想在启动政策后立即显示“注册”屏幕,然后可以选择导航到“登录”页面。
任何建议将不胜感激。
答案 0 :(得分:0)
这不可能。您可以使用 B2C 请求电子邮件,然后在单个 B2C 政策中发送用户登录或根据它是否存在进行注册。
但要实现您所描述的用户体验,您需要将旅程分成两部分,分别进行注册和单独登录。
您可以通过将第 1 步和第 2 步转换为以下类型的单个步骤:ClaimsExchange 并分别引用登录或注册技术资料来实现这一点。
然后您需要使用户能够在两种策略之间切换。为此,请使用自定义 html 在每个策略中嵌入一个链接:myapp.com/signin 或 myapp.com/signup。然后,应用程序应向相应的 B2C 策略 ID 发送格式正确的身份验证请求。 https://docs.microsoft.com/en-us/azure/active-directory-b2c/customize-ui-with-html?pivots=b2c-custom-policy
架构参考在这里 https://docs.microsoft.com/en-us/azure/active-directory-b2c/self-asserted-technical-profile
您可以在此处了解更多信息 https://azure-ad-b2c.github.io/azureadb2ccommunity.io/docs/custom-policy-concepts/
答案 1 :(得分:0)
我想出的解决方案如下:
没有本地方式(即 - 您可以设置的 xml 策略配置参数)将重新启动流程/登录按钮添加到注册页面。
如果您的主要目标是从 '/signup' baack 导航到 '/signin',我建议将以下 html 添加到您的模板中,然后您可以根据自己的喜好设置样式:
(Note the call to `history.back()` on the anchor tag)
<body>
<div class="container unified_container">
<div class="row">
<div class="col-lg-6">
<div class="panel panel-default">
<div class="panel-body">
<div id="api"></div>
<div id="signinContainer">
<p>
Already Registered?
<a
id="signinLink"
type="submit"
aria-disabled="false"
aria-label="To Sign in screen"
href="javascript:history.back()"
>Log in</a
>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
或者,如果您知道要返回特定次数(例如,返回 3 页),则可以使用以下内容代替我们在上面看到的 history.back()
:
history.go(-3);