【问题标题】:Membership issue with MySQL Provider and ASP.NET MVC 5, minRequiredNonalphanumericCharacters not taken into accountMySQL Provider 和 ASP.NET MVC 5 的成员资格问题,未考虑 minRequiredNonalphanumericCharacters
【发布时间】:2015-12-20 10:04:15
【问题描述】:

我目前正在开发一个 Web 项目,但经过一些预 alpha 测试后,有人告诉我,在注册时要求密码中包含非字母数字字符太多了。他们希望能够只使用字母和数字(最终使用大写字母)。

所以我前往我的 web.config 来编辑提供程序的标签,但是当值为 0 时它不会改变任何内容。我的提供程序被定义为默认提供程序,并且不应该有任何覆盖表单控制方法,所以我在这里不知所措。

这是我的 web.config 中的 provider 行:

<membership defaultProvider="MySQLMembershipProvider">
  <providers>
    <remove name="MySQLMembershipProvider" />
    <add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.9.7.0, Culture=neutral, PublicKeyToken=x" connectionStringName="LocalMySqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Clear" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
  </providers>
</membership>

这是我关于注册表单的示范方法:

public class RegisterViewModel
{
    [Required]
    [EmailAddress]
    [Display(Name = "Courrier électronique")]
    public string Email { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "La chaîne {0} doit comporter au moins {2} caractères.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Mot de passe")]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [Display(Name = "Confirmer le mot de passe ")]
    [Compare("Password", ErrorMessage = "Le mot de passe et le mot de passe de confirmation ne correspondent pas.")]
    public string ConfirmPassword { get; set; }

    [MustBeTrue(ErrorMessage = "Vous devez accepter les conditions générales d'utilisation.")]
    [Display(Name = "Accepter les conditions générales d'utilisation ")]
    public bool AccepteConditions { get; set; }
}

我尝试将 minRequiredNonalphanumericCharacters 的值更改为 2,但当然,错误消息是通用的,不会更改。所以我真的不能说是否使用了提供者。所以基本上,无论我将值设置为 0、1 还是 2,如果我尝试输入字母数字密码,错误消息不会消失,但只要我输入至少 1 个字符,我就可以毫无问题地通过。

【问题讨论】:

    标签: c# mysql asp.net asp.net-mvc web


    【解决方案1】:

    我终于解决了我的问题,只是碰巧 MySQL Membership 提供程序被我的模型文件夹中的一个配置类否决了,而这并没有出现在我的解决方案中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多