更改 System.Web.Security.MembershipProvider (EPiServer) 中密码策略验证的错误消息

a4b*_*ike 5 .net asp.net security asp.net-membership episerver

这是我的情况。

我正在使用 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]).*$" />
Run Code Online (Sandbox Code Playgroud)

一切正常,验证和不同的场景。

我们的问题是会员提供者显示的错误消息是通过使用配置创建的,它最终给出了用户不友好的消息,例如:

  • '无效密码,最小长度:8,最小非字母数字字符:1'
  • 'newPassword' 中的非字母数字字符需要大于或等于 '1'。参数名称:newPassword'
  • '参数'newPassword' 与配置文件中指定的正则表达式不匹配。参数名称:newPassword'

在episerver中创建用户时的错误消息密码验证

我很想设置一个自定义错误消息,它真正向用户解释了我们在用于验证密码的正则表达式中的所有要求。

到目前为止,我可以考虑这样做的唯一方法是实现/扩展我们正在使用的当前提供程序,以便在验证出现问题时设置自定义错误消息,但我想可能有另一种更好/更简单的方法来做到这一点.

提前致谢!

Joh*_*hnH 0

我同意您的自定义错误消息想法。

考虑显示一个带有 UI 错误消息的 div,这些消息在检测到输入错误之前会被隐藏。它可以位于输入文本框的右侧或提交按钮的上方。显示的错误消息取决于检测到的输入错误。

对于任何密码/确认密码输入错误,请定义通用密码错误消息,然后列出问题中列出的密码输入要求。

可以针对用户名和电子邮件地址输入错误添加其他错误消息。