我正在启动时设置身份选项,调用:
services.AddIdentity<Usuarios, IdentityRole>(options =>
{
if (usersConfiguration.PasswordLongitud.HasValue)
options.Password.RequiredLength = usersConfiguration.PasswordLongitud.Value;
if (usersConfiguration.CantidadIntentosLogin.HasValue)
options.Lockout.MaxFailedAccessAttempts = usersConfiguration.CantidadIntentosLogin.Value;
options.Password.RequireLowercase = usersConfiguration.PasswordRequiereMinusculas;
options.Password.RequireUppercase = usersConfiguration.PasswordRequiereMayusculas;
options.Password.RequireNonAlphanumeric = usersConfiguration.PasswordRequiereCaracteresRaros;
options.Password.RequireDigit = usersConfiguration.PasswordRequiereNumeros;
options.SignIn.RequireConfirmedEmail = usersConfiguration.UsuarioRequiereConfirmacionMail;
})
我想让我的应用程序的用户更改此选项,所以我要做的是从控制器更改身份选项,但我没有找到如何做到这一点。例如,我需要允许用户Administrator更改RequireLowercase选项。如果可能的话,我想避免重新启动IIS以再次调用Startup。
对不起我的英语不好。
通过将UserManager
注入控制器,您可以访问这些选项并进行更改。 Identity选项通过单例进行管理,因此所有请求都将获得更新的值。
public MyController(UserManager<User> userManager)
{
userManager.Options.Password.RequireDigit = true; //Get something from db, config etc.
}