【问题标题】:UserManager.CreateAsync() requires a complex passwordUserManager.CreateAsync() 需要复杂的密码
【发布时间】:2016-01-08 06:06:59
【问题描述】:

我正在设计一个注册表单并使用 ajax 向服务器发送数据。

我的模特:

public class RegisterViewModel
{
    [Required]
    public string Name { get; set; }

    [Required]
    public string Email { get; set; }

    [Required]
    [DataType(DataType.Password)]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [Compare("Password")]
    public string ConfirmPassword { get; set; }
}

和行动:

[HttpPost]
[AllowAnonymous]
public async Task<ActionResult> Register(RegisterViewModel model)
{
   if (ModelState.IsValid)    
   {
      var user = new ApplicationUser { UserName = model.Email, Email = model.Email };

      var result = await UserManager.CreateAsync(user, model.Password);

      if (result.Succeeded)
      {
         // do stuff...
      }
   }
}

我的问题:result.Succeeded 返回 false 并带有错误消息(Passwordhelloworld):

密码必须至少包含一个非字母或数字字符。 密码必须至少有一位数字 ('0'-'9')。密码必须有 至少一个大写字母('A'-'Z')。

正如您在上面看到的,我没有为PasswordConfirmPassword 设置任何正则表达式。那我为什么会得到那个?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    看起来您正在使用 Identity。在 IdentityConfig.cs 中有一个部分,您可以在其中配置密码要求。查找此部分:

       manager.PasswordValidator = new PasswordValidator
            {
                RequiredLength = 6,
                RequireNonLetterOrDigit = true,
                RequireDigit = true,
                RequireLowercase = true,
                RequireUppercase = true,
            };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-19
      • 2011-12-13
      • 2021-09-23
      • 2016-03-25
      • 2010-10-08
      相关资源
      最近更新 更多