Iai*_*ley 5 azure azure-ad-b2c
我们正在使用 Azure B2C 的自定义注册/登录策略,并且在尝试使用外语电子邮件地址登录时遇到问题。
\n\n我们遵循了 Microsoft 教程并在此处使用了自定义入门 XML 文件。
\n\n我们最初发现我们甚至无法使用外语电子邮件地址(例如 \xe4\xbc\x8a\xe4\xbc\x8a\xe4\xbc\x8a\xe4\xbc\x8a\xe4\xbc \x8a\xe4\xbc\x8a\xe4\xbc\x8a@\xe4\xbc\x8a\xe4\xbc\x8a\xe4\xbc\x8a。\xe4\xbc\x8a\xe4\xbc\x8a\xe4\xbc \x8a) 但我们注意到 TrustFrameworkBase.xml 启动文件中有一些我们可以操作的正则表达式:
\n\n <ClaimType Id="email">\n <DisplayName>Email Address</DisplayName>\n <DataType>string</DataType>\n <DefaultPartnerClaimTypes>\n <Protocol Name="OpenIdConnect" PartnerClaimType="email" />\n </DefaultPartnerClaimTypes>\n <UserHelpText>Email address that can be used to contact you.</UserHelpText>\n <UserInputType>TextBox</UserInputType>\n <Restriction>\n <Pattern RegularExpression="^[a-zA-Z0-9.!#$%&\'^_`{}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$" HelpText="Please enter a valid email address." />\n </Restriction>\n </ClaimType>\nRun Code Online (Sandbox Code Playgroud)\n\n所以我们改变了正则表达式,我们就可以注册了!
\n\n但是,当我们尝试使用刚刚注册的帐户登录时,我们收到一条消息“请输入有效的电子邮件地址”。
\n\n我已经用开箱即用的普通注册/登录策略尝试过这一点,并且得到了同样的结果。HTML 文本框上有一个正则表达式模式属性,如下所示:
\n\n <input type="email" id="logonIdentifier" name="Username or email address" pattern="^[a-zA-Z0-9.!#$%&\xe2\x80\x99\'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$" placeholder="Email Address" value="" tabindex="1">\nRun Code Online (Sandbox Code Playgroud)\n\n阻止登录。
\n\n如果我进去并删除这个模式正则表达式,我实际上可以登录,所以我知道它可以工作。我只需要删除这个模式属性。
\n\n我肯定错过了什么。谁能告诉我需要配置什么才能使用这样的电子邮件地址登录?
\n登录的电子邮件正则表达式模式不是从策略的 ClaimType 中的“模式”属性中提取的。这就是您观察这种行为的原因。
\n\n您可以做的是在技术配置文件元数据中添加语言设置,如下所示。
\n\n <TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">\n <Metadata>\n\n ...\n <Item Key="language.email_pattern">{desired_pattern}</Item>\n </Metadata>\n \xe2\x80\xa6.\n </TechnicalProfile>\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
875 次 |
| 最近记录: |