【发布时间】:2021-03-20 21:52:26
【问题描述】:
我在 ASP.NET Core Web API 应用程序中使用 Identity,并希望使用自定义 Identity 选项。我在像这样注册身份时将它们传递给Startup.cs:
Action<IdentityOptions> configureOptions = options =>
{
options.Password.RequireDigit = false;
options.Password.RequiredLength = 4;
options.Password.RequireLowercase = false;
options.Password.RequireUppercase = false;
options.Password.RequireNonAlphanumeric = false;
options.SignIn.RequireConfirmedAccount = true;
options.SignIn.RequireConfirmedEmail = true;
};
services
.AddIdentityCore<ApplicationUser>(configureOptions)
.AddDefaultTokenProviders()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddErrorDescriber<CustomIdentityErrorDescriber>();
但这些选项不会改变任何东西。
例如,当我将密码所需的最小长度设置为 4 并添加长度为 5 的用户密码时,我得到一个 IdentityError,它表示最小长度为 8。
这对我来说似乎很奇怪,因为 documentations of Identity 声明默认值为 6?
那么 8 是从哪里来的,为什么不是我配置的 4?
【问题讨论】:
-
身份视图模型也有硬编码的长度属性。但是你在下面说API? UserManager.PasswordValidators 应该只包含这个 IPasswordValidator 服务; github.com/dotnet/aspnetcore/blob/… 应该只关心 IdentityOptions ......所以不知道?
标签: c# .net asp.net-core .net-core asp.net-identity