密码限制是使用ASP.NET标识设置的。
这些选项用于定义设置用户密码时所需的密码强度。
您可以配置这些要求,以便指定最小密码长度等属性,或者是否需要数字、大写或非字母数字字符。
在ConfigureServices中配置密码设置
更改这些设置的最简单方法是将此代码添加到Startup类的ConfigureServices方法中:
services.Configure<IdentityOptions>(options => { options.Password.RequireDigit = false; options.Password.RequireLowercase = true; options.Password.RequireUppercase = true; options.Password.RequireNonAlphanumeric = false; options.Password.RequiredUniqueChars = 3; options.Password.RequiredLength = 6; });
从外部配置文件读取配置
实现这一点的更好方法是从配置源读取配置,作为设置文件、环境变量、命令行参数。有关默认配置提供程序使用的默认配置源以及如何对其进行自定义的完整列表,请参阅相关的ASP.NET核心文档:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1
使用appsettings.{Environment}.json设置文件(例如appsettings.json、appsettings.Production.json和appsettings.Development.json)将允许您根据环境指定不同的设置,并在部署时转换配置节。
默认StartUp文件中有代码:
public Startup(IConfiguration configuration) { Configuration = configuration; }
然后,用从配置文件中读取配置的代码替换硬编码的配置:
services.Configure<IdentityOptions>(options => { Configuration.GetSection("IdentityOptions").Bind(options); });
最后,使用json中的以下配置创建一个名为appsettings.json的文件,如果已经存在可以直接修改:
{ "IdentityOptions": { "Password": { "RequireDigit": true, "RequireLowercase": true, "RequireUppercase": true, "RequireNonAlphanumeric": true, "RequiredUniqueChars": 4, "RequiredLength": 8 } } }
关于PasswordOptions()的属性说明:
PRRequireDigit 获取或设置一个标志,该标志指示密码是否必须包含数字。默认为true。
RequiredLength 获取或设置密码必须的最小长度。默认为6。
RequiredUniqueChars 获取或设置密码必须包含的最小唯一字符数。默认为1。
RequireLowercase 获取或设置一个标志,该标志指示密码是否必须包含小写ASCII字符。默认为true。
RequireNonAlphanumeric 获取或设置一个标志,该标志指示密码是否必须包含非字母数字字符。默认为true。
RequireUppercase 获取或设置一个标志,该标志指示密码是否必须包含大写ASCII字符。默认为true。