public static CHRSUserManager Create(IdentityFactoryOptions <CHRSUserManager> options, IOwinContext context) { CHRSUserManager manager = CreateUserManagerDefaultSettings(); var dataProtectionProvider = options.DataProtectionProvider; if (dataProtectionProvider != null) { manager.UserTokenProvider = new DataProtectorTokenProvider <User>(dataProtectionProvider.Create("CHRS Identity Data Protection")); } return(manager); }
private static CHRSUserManager CreateUserManagerDefaultSettings(GmiContext context) { var provider = new DpapiDataProtectionProvider("CHRSDataProtection"); var manager = new CHRSUserManager(new CHRSUserStore <User>(context)); // Configure validation logic for usernames manager.UserValidator = new UserValidator <Domain.Models.User>(manager) { AllowOnlyAlphanumericUserNames = false, RequireUniqueEmail = true }; // Configure validation logic for passwords manager.PasswordValidator = new PasswordValidator { RequiredLength = 4, RequireNonLetterOrDigit = false, RequireDigit = false, RequireLowercase = false, RequireUppercase = false, }; // Configure user lockout defaults manager.UserLockoutEnabledByDefault = true; manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5); manager.MaxFailedAccessAttemptsBeforeLockout = 5; // Register two factor authentication providers. This application uses Phone and Emails as a step of receiving a code for verifying the user // You can write your own provider and plug it in here. manager.RegisterTwoFactorProvider("Phone Code", new PhoneNumberTokenProvider <Domain.Models.User> { MessageFormat = "Your security code is {0}" }); manager.RegisterTwoFactorProvider("Email Code", new EmailTokenProvider <Domain.Models.User> { Subject = "Security Code", BodyFormat = "Your security code is {0}" }); manager.UserTokenProvider = new DataProtectorTokenProvider <Domain.Models.User>(provider.Create("EmailConfirmationForCHRSRegistered")); //manager.EmailService = new EmailService(); return(manager); }