这是我的情况。
我正在使用EPiServer 9,并已配置了一个SqlServerMembershipProvider,如下所示:
<add name="SqlServerMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="EPiServerXYZ"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="8"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
applicationName="/"
passwordStrengthRegularExpression="^.*(?=.{8,})(?=.*\d)(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[^\w\d\s]).*$" />
一切都运行良好,包括验证和不同的场景。
我们的问题在于,会员提供程序显示的错误消息是使用配置创建的,结果会给出不友好的消息,例如:
-“无效密码,最小长度:8,最小非字母数字字符:1” -“'newPassword'中的非字母数字字符需要大于或等于'1'。 参数名称:newPassword” -“参数'newPassword'与配置文件中指定的正则表达式不匹配。 参数名称:newPassword” 我希望设置一个自定义错误消息,真正向用户解释我们在用于验证密码的正则表达式中的所有要求。
到目前为止,我能想到的唯一方法是通过实现/扩展我们当前使用的提供程序来设置自定义错误消息,以便在验证出现问题时发出提示,但我猜可能有另一种更好/更简单的方法来做到这一点。
提前感谢!