微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

尝试将认最小密码长度更改为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对象设置此属性.

原文地址:https://www.jb51.cc/aspnet/250470.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐