Azure AD B2C 自定义密码重置策略不会使用 + char\sign 验证电子邮件

Azure AD B2C custom Password reset policy won't validate e-mail with + char\sign

用户可以使用包含 + 的电子邮件使用 Azure AD B2C 进行注册和登录。但是,当单击登录页面上的 "Forgot password" link 并输入带有 + 字符的电子邮件时,会显示以下错误:

我在 Azure 的反馈站点上看到了 2 个相关问题:

allow plus sign in email addresses [用户 Naud van Onna 的评论与此问题相匹配。 ]

I've seen a successful sign-up using a '+' symbol in the email address as well. Unfortunately the password reset functionality is not working using an email address with a '+' symbol.

Support plus-addressing in emails, which is invaluable for testing [ 在此提到的电子邮件 sub-addressing 功能描述了我们的情况。我们使用 + 电子邮件地址来测试我们的应用程序。 ]

自定义策略 .xml 文件中是否有任何地方可以输入自定义正则表达式来验证此电子邮件地址并允许 + 符号?

我在 TrustFrameworkBase.xml 文件中看到 <TechnicalProfile Id="LocalAccountDiscoveryUsingEmailAddress"> 但我不确定在哪里修改它...

<!-- This technical profile forces the user to verify the email address that they provide on the UI. Only after email is verified, the user account is
        read from the directory. -->
        <TechnicalProfile Id="LocalAccountDiscoveryUsingEmailAddress">
.
.
.

好吧...经过更多研究后,我在电子邮件 ClaimType 中发现错误消息“请输入有效的电子邮件地址。TrustFrameworkBase.xml.

<ClaimType Id="email">
<DisplayName>Email Address</DisplayName>
<DataType>string</DataType>
<DefaultPartnerClaimTypes>
  <Protocol Name="OpenIdConnect"
    PartnerClaimType="email" />
</DefaultPartnerClaimTypes>
<UserHelpText>Email address that can be used to contact you.</UserHelpText>
<UserInputType>TextBox</UserInputType>
<Restriction>
  <Pattern RegularExpression="^[a-zA-Z0-9.!#$%&amp;'^_`{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$"
    HelpText="Please enter a valid email address." />
</Restriction>
</ClaimType>

这个正则表达式

^[a-zA-Z0-9.!#$%&'^_`{}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$

是验证电子邮件的那个...我们只需要调整它以便它接受 + 标志,如下所示:

^[a-zA-Z0-9.+!#$%&'^_`{}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$

关于 ClaimsSchema.

的 Microsoft 文档