加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

.net – 修改MVC 5中的密码长度

发布时间:2020-12-15 23:30:42 所属栏目:asp.Net 来源:网络整理
导读:尝试将默认最小密码长度更改为4个字符.我知道,4!可笑,对!不是我的电话 无论如何,我已经在RegisterViewModel上更改了它,但实际上并没有改变它.为了说明我已经发布了下面的代码. ModleState.IsValid根据更新的ViewModel正确返回.然后它调用UserManager.Creat
尝试将默认最小密码长度更改为4个字符.我知道,4!可笑,对!不是我的电话

无论如何,我已经在RegisterViewModel上更改了它,但实际上并没有改变它.为了说明我已经发布了下面的代码. ModleState.IsValid根据更新的ViewModel正确返回.然后它调用UserManager.CreateAsync()返回False,并显示一条错误消息“密码必须至少为6个字符”

我已经遵循了这个非常类似的帖子(Change Password…)中的步骤,但是对于MVC 5而言,它不起作用.它仍然返回相同的消息.

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


// This is where it 'fails' on the CreateAsync() call
                    var result = await UserManager.CreateAsync(user,model.Password);
                    if (result.Succeeded)
                    {
                        await SignInAsync(user,isPersistent: false);
                        return RedirectToAction("Index","Home");
                    }
                    else
                    {
                        AddErrors(result);
                    }
                }
            // If we got this far,something failed,redisplay form
            return View(model);
        }

解决方法

可以看到UserManager具有公共属性IIdentityValidator< string> PasswordValidator用于密码验证,目前在UserManager的构造函数中使用硬编码参数初始化this.PasswordValidator =(IIdentityValidator< string>)new MinimumLengthValidator(6);.

您可以使用必需密码长度的MinimumLengthValidator对象设置此属性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读