【发布时间】: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