【问题标题】:Configuring Password Requirements in ASP.net Core 3 Identity Doesn't Work在 ASP.net Core 3 身份中配置密码要求不起作用
【发布时间】:2020-08-25 00:16:34
【问题描述】:

我使用 ASP.net Identity 创建了一个全新的 .net Core 3.1 解决方案。

注册页面至少需要 6 个字符。

我想因此配置这些要求

// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
    services.Configure<IdentityOptions>(options =>
    {
        options.Password.RequiredLength = 1;
        options.Password.RequireUppercase = true;
        options.Password.RequireLowercase = true;
        options.Password.RequireDigit = false;
        options.Password.RequireNonAlphanumeric = false;
        options.Password.RequiredUniqueChars = 5;
    });

    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(
            Configuration.GetConnectionString("DefaultConnection")));

    services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
        .AddEntityFrameworkStores<ApplicationDbContext>();


    services.AddControllersWithViews();

    services.AddRazorPages();
}

我在顶部添加了密码选项,但它们被忽略了。注册时仍然需要输入6到100个字符。

我找到了很多文章,例如:

这样说应该可行。甚至没有错误,所以不知道如何解决这个问题。

我怎样才能让它工作?谢谢。

【问题讨论】:

  • 如果我没记错的话,你应该在添加之后配置Identity。所以尝试AddDefaultIdentity 然后Configure&lt;IdentityOptions&gt;。如果这不起作用,也许在这两个之前尝试AddDbContext。这是一个很好的link
  • 我最初是这样做的。您建议的任何事情都无法解决。
  • 我将从该链接中复制代码块并反馈
  • 嗯,即使我从链接中复制了整个 ConfigureServices 方法,即使我将其设置为 1,它仍然会卡在 6 个字符的RequiredLength 上。如果我将其设置为 7,它也会卡在6,根据我的屏幕截图。

标签: asp.net-identity asp.net-identity-2 asp.net-core-identity


【解决方案1】:

您可以仔细检查一个简单的事情,即您在创建用户时是否确实传递了密码。如果您不传递密码,Identity 不会运行任何密码验证规则,但仍会创建用户而不会出错。

 result = await _userManager.CreateAsync(user, Input.Password);

【讨论】:

    【解决方案2】:

    嗨@niico,当您提交表单时,此身份密码选项将起作用,并且 Createasync 函数将返回 false。它会跳转到

    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError(string.Empty, error.Description);
                    }
    

    并绑定验证信息并返回页面并显示在顶部。

    谢谢

    【讨论】:

      猜你喜欢
      • 2015-02-28
      • 2021-01-11
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 2019-05-05
      相关资源
      最近更新 更多