1

我正在尝试使用 LocalAccountSignUpWithLogonName 自定义策略收集用户详细信息。我已将 LocalAccountSignUpWithLogonName 添加<OutputClaim ClaimTypeReferenceId="email" /> 为 outputclaim。我想让电子邮件字段可选,但如果用户输入电子邮件我想启用限制。下面是我的电子邮件声明

<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>

但是当我将模式限制添加到声明时,它使该字段成为强制性的。

4

1 回答 1

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-]+)*$" ` 来实现它。

^$|我必须在接受空白/空或实际电子邮件的表达式前面加上前缀。

于 2018-08-30T17:21:10.660 回答