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

Я пытаюсь собрать информацию о пользователе, используя пользовательскую политику 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 Ответ

0 голосов
/ 30 августа 2018

Я добился этого, изменив регулярное выражение с 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- ] +) * $ "`.

Мне пришлось добавить к выражению ^$|, которое принимает пустое / пустое или фактическое электронное письмо.

...