ASP中提供的默认身份提供程序.NET5默认情况下有非常严格的密码规则,需要小写字符、大写字符、非字母数字字符和数字.我正在寻找一种方法来更改Provider 的密码要求.
以前在ASP.NET 4,提供程序可以通过Web进行配置.配置XML文件,如previously answered所示.然而,ASP.NET5使用了新的基于代码的配置模式,目前尚不清楚如何配置身份.
如何更改应用程序的密码要求?
ASP中提供的默认身份提供程序.NET5默认情况下有非常严格的密码规则,需要小写字符、大写字符、非字母数字字符和数字.我正在寻找一种方法来更改Provider 的密码要求.
以前在ASP.NET 4,提供程序可以通过Web进行配置.配置XML文件,如previously answered所示.然而,ASP.NET5使用了新的基于代码的配置模式,目前尚不清楚如何配置身份.
如何更改应用程序的密码要求?
我最终发现,你需要为AddDefaultIdentity提供一个合适的lambda表达式来配置它提供的IdentityOptions.这是在Startup类中的ConfigureServices方法中完成的,如下所示:
public class Startup {
public void ConfigureServices(IServiceCollection services) {
// Add Identity services to the services container.
services.AddDefaultIdentity<ApplicationIdentityDbContext, ApplicationUser, IdentityRole>(Configuration,
o => {
o.Password.RequireDigit = false;
o.Password.RequireLowercase = false;
o.Password.RequireUppercase = false;
o.Password.RequireNonLetterOrDigit = false;
o.Password.RequiredLength = 7;
});
}
}
Update 2:
上述情况在beta1版本的框架中是正确的,在最新的rc1beta5版本中,它略微更改为:
services.AddIdentity<ApplicationUser, IdentityRole>(o => {
// configure identity options
o.Password.RequireDigit = false;
o.Password.RequireLowercase = false;
o.Password.RequireUppercase = false;
o.Password.RequireNonAlphanumeric = false;
o.Password.RequiredLength = 6;
})
.AddEntityFrameworkStores<ApplicationIdentityDbContext>()
.AddDefaultTokenProviders();