Мы используем настраиваемую политику регистрации и входа в Azure B2C, и у нас возникают проблемы при попытке войти с адресами электронной почты на иностранных языках.
Мы следовали учебным курсам Microsoft и использовали пользовательские стартовые XML-файлы здесь .
Сначала мы обнаружили, что не можем зарегистрироваться даже с адресом электронной почты на иностранном языке (например, 伊伊伊伊伊 伊伊 @ 伊伊伊. 伊伊伊), но заметили, что в Начальный файл 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.!#$%&'^_`{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" HelpText="Please enter a valid email address." />
</Restriction>
</ClaimType>
Итак, мы изменили регулярное выражение и можем зарегистрироваться!
Но затем, когда мы попытались выполнить вход с использованием только что зарегистрированной учетной записи, мы получили сообщение «Пожалуйста, введите действительный адрес электронной почты».
Я попробовал это с использованием ванильной политики регистрации / входа, и я получил то же самое. В текстовом поле HTML есть атрибут шаблона регулярного выражения, который выглядит следующим образом:
<input type="email" id="logonIdentifier" name="Username or email address" pattern="^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" placeholder="Email Address" value="" tabindex="1">
, который запрещает вход в систему.
Если я пойду и уберу это регулярное выражение, я смогу войти, поэтому я знаю, что это МОЖЕТ работать. Мне просто нужно удалить этот атрибут шаблона.
Я должен что-то упустить. Может кто-нибудь сказать мне, что мне нужно настроить, чтобы иметь возможность войти с таким адресом электронной почты?