Добавьте ограничения в пользовательскую политику и сделайте запрос необязательным Azure B2C

Я пытаюсь собрать информацию о пользователе с помощью пользовательской политики LocalAccountSignUpWithLogonName. Я добавил <OutputClaim ClaimTypeReferenceId="email" />в LocalAccountSignUpWithLogonName как выходной запрос. Я хочу, чтобы поле электронной почты было необязательным, но если пользователь вводит адрес электронной почты, я хочу включить ограничения. Ниже приводится мое требование по электронной почте.

<ClaimType Id="email">
<DisplayName>Your 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>

Но когда я добавляю ограничение шаблона в заявку, это делает поле обязательным.

1 ответ

Решение

Я достиг этого, изменив регулярное выражение из RegularExpression="^[a-zA-Z0-9.+!#$%&amp;'^_{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" в RegularExpression="^$|^[a-zA-Z0-9.+!#$%&amp;'^_{}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$" `.

Я должен был префикс выражения с ^$| которые принимают пустой / пустой или фактический адрес электронной почты.

Другие вопросы по тегам