Я управляю разными клиентами в своем приложении, и все клиенты используют одно и то же приложение mvc.Но мне нужно изменить логику проверки пароля в зависимости от клиента.
Я создал политику паролей по умолчанию в IdentityConfig.cs. Создайте метод, как показано ниже:
public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
{
var manager = new ApplicationUserManager(context.Get<ApplicationDbContext>());
// Configure validation logic for usernames
manager.UserValidator = new UserValidator<ApplicationUser>(manager)
{
AllowOnlyAlphanumericUserNames = false,
RequireUniqueEmail = true
};
// Configure validation logic for passwords
manager.PasswordValidator = new PasswordValidator
{
RequiredLength = 6,
RequireNonLetterOrDigit = true,
RequireDigit = true,
RequireLowercase = true,
RequireUppercase = true,
};
// Configure user lockout defaults
manager.UserLockoutEnabledByDefault = true;
manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5);
manager.MaxFailedAccessAttemptsBeforeLockout = 5;
return manager;
}
Но мне нужно управлять специфичным для клиента PasswordValidator.Я получаю текущего клиента из субдомена, я имею в виду, если мой URL http://example.com/customer1, тогда я знаю, что это customer1 и получаю настройки политики паролей из базы данных.Я беру эти настройки в переменную сессии.Могу ли я использовать переменные Session в методе IdentityConfig Create или как я могу переопределить свойства PasswordValidator после создания сеанса?