我正在尝试使用 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.+!#$%&'^_{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" HelpText="Please enter a valid email address." />
</Restriction>
但是当我添加模式限制来声明时,它使该字段成为强制字段。
我通过改变正则表达式来实现它RegularExpression="^[a-zA-Z0-9.+!#$%&'^_{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$"
to RegularExpression="^$|^[a-zA-Z0-9.+!#$%&'^_
{}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$" `.
我必须在表达式前面加上前缀^$|
接受空白/空或实际的电子邮件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)