Я использую. Net Core 3.1 и IdentityUser. Я попытался настроить IdentityUser, предложенный на Microsoft Docs , но он не работает так, как я хотел. Например, как указано в разделе конфигурации, конечный пользователь должен ввести как минимум 6-значный пароль; но я могу зарегистрироваться с паролем длиной 3 символа. Что я делаю неправильно?
Все остальное работает нормально, поэтому я просто опубликую свой Startup.cs
Во-первых, я попробовал этот код:
services.AddIdentity<ApplicationUser, ApplicationRole> ()
.AddEntityFrameworkStores<dbContext>()
.AddDefaultTokenProviders();
services.Configure<IdentityOptions>(options =>
{
// Password settings.
options.Password.RequireDigit = true;
options.Password.RequireLowercase = true;
options.Password.RequireNonAlphanumeric = true;
options.Password.RequireUppercase = true;
options.Password.RequiredLength = 6;
options.Password.RequiredUniqueChars = 1;
// Lockout settings.
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
options.Lockout.MaxFailedAccessAttempts = 5;
options.Lockout.AllowedForNewUsers = true;
// User settings.
options.User.AllowedUserNameCharacters =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
options.User.RequireUniqueEmail = true;
});
А во-вторых, этот:
services.AddIdentity<ApplicationUser, ApplicationRole> (options =>
{
// Password settings.
options.Password.RequireDigit = true;
options.Password.RequireLowercase = true;
options.Password.RequireNonAlphanumeric = true;
options.Password.RequireUppercase = true;
options.Password.RequiredLength = 6;
options.Password.RequiredUniqueChars = 1;
// Lockout settings.
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
options.Lockout.MaxFailedAccessAttempts = 5;
options.Lockout.AllowedForNewUsers = true;
// User settings.
options.User.AllowedUserNameCharacters =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
options.User.RequireUniqueEmail = true;
})
.AddEntityFrameworkStores<CommonServiceDBContext>()
.AddDefaultTokenProviders();