//====================================================================================================== public async Task <string> GeneratePhoneNumberTokenAsync(ApplicationUser _User) { PhoneNumberTokenProvider <ApplicationUser> phoneNumberTokenProvider = new PhoneNumberTokenProvider <ApplicationUser>(); var token = await phoneNumberTokenProvider.GenerateAsync("ResetPassword", _userManager, _User); return(token); }
public PhoneNumberValidator(PhoneNumberTokenProvider <User> phoneNumberTokenProvider, UserManager <User> userManager, SignInManager <User> signInManager, IEventService events, ILogger <PhoneNumberValidator> logger) { _phoneNumberTokenProvider = phoneNumberTokenProvider; _userManager = userManager; _signInManager = signInManager; _events = events; _logger = logger; }
private void RegisterPhoneNumberProvider() { var provider = new PhoneNumberTokenProvider <ApplicationUser> { MessageFormat = "Your security code is {0}", }; this.RegisterTwoFactorProvider("Phone Code", provider); }
private void RegisterPhoneNumberProvider() { var provider = new PhoneNumberTokenProvider <FimaUser, int> { MessageFormat = "Your security code is {0}" }; this.RegisterTwoFactorProvider("Phone Code", provider); }
public static ApplicationUserManager Create( IdentityFactoryOptions <ApplicationUserManager> options, IOwinContext context) { ApplicationUserManager applicationUserManager1 = new ApplicationUserManager((IUserStore <ApplicationUser>) new UserStore <ApplicationUser>((DbContext)OwinContextExtensions.Get <ApplicationDbContext>(context))); ApplicationUserManager applicationUserManager2 = applicationUserManager1; UserValidator <ApplicationUser> userValidator1 = new UserValidator <ApplicationUser>((UserManager <ApplicationUser, string>)applicationUserManager1); ((UserValidator <ApplicationUser, string>)userValidator1).set_AllowOnlyAlphanumericUserNames(false); ((UserValidator <ApplicationUser, string>)userValidator1).set_RequireUniqueEmail(true); UserValidator <ApplicationUser> userValidator2 = userValidator1; ((UserManager <ApplicationUser, string>)applicationUserManager2).set_UserValidator((IIdentityValidator <ApplicationUser>)userValidator2); ApplicationUserManager applicationUserManager3 = applicationUserManager1; PasswordValidator passwordValidator1 = new PasswordValidator(); passwordValidator1.set_RequiredLength(6); passwordValidator1.set_RequireNonLetterOrDigit(true); passwordValidator1.set_RequireDigit(true); passwordValidator1.set_RequireLowercase(true); passwordValidator1.set_RequireUppercase(true); PasswordValidator passwordValidator2 = passwordValidator1; ((UserManager <ApplicationUser, string>)applicationUserManager3).set_PasswordValidator((IIdentityValidator <string>)passwordValidator2); ((UserManager <ApplicationUser, string>)applicationUserManager1).set_UserLockoutEnabledByDefault(true); ((UserManager <ApplicationUser, string>)applicationUserManager1).set_DefaultAccountLockoutTimeSpan(TimeSpan.FromMinutes(5.0)); ((UserManager <ApplicationUser, string>)applicationUserManager1).set_MaxFailedAccessAttemptsBeforeLockout(5); ApplicationUserManager applicationUserManager4 = applicationUserManager1; PhoneNumberTokenProvider <ApplicationUser> numberTokenProvider1 = new PhoneNumberTokenProvider <ApplicationUser>(); ((PhoneNumberTokenProvider <ApplicationUser, string>)numberTokenProvider1).set_MessageFormat("Your security code is {0}"); PhoneNumberTokenProvider <ApplicationUser> numberTokenProvider2 = numberTokenProvider1; ((UserManager <ApplicationUser, string>)applicationUserManager4).RegisterTwoFactorProvider("Phone Code", (IUserTokenProvider <ApplicationUser, string>)numberTokenProvider2); ApplicationUserManager applicationUserManager5 = applicationUserManager1; EmailTokenProvider <ApplicationUser> emailTokenProvider1 = new EmailTokenProvider <ApplicationUser>(); ((EmailTokenProvider <ApplicationUser, string>)emailTokenProvider1).set_Subject("Security Code"); ((EmailTokenProvider <ApplicationUser, string>)emailTokenProvider1).set_BodyFormat("Your security code is {0}"); EmailTokenProvider <ApplicationUser> emailTokenProvider2 = emailTokenProvider1; ((UserManager <ApplicationUser, string>)applicationUserManager5).RegisterTwoFactorProvider("Email Code", (IUserTokenProvider <ApplicationUser, string>)emailTokenProvider2); ((UserManager <ApplicationUser, string>)applicationUserManager1).set_EmailService((IIdentityMessageService) new EmailService()); ((UserManager <ApplicationUser, string>)applicationUserManager1).set_SmsService((IIdentityMessageService) new SmsService()); IDataProtectionProvider protectionProvider = options.get_DataProtectionProvider(); if (protectionProvider != null) { ((UserManager <ApplicationUser, string>)applicationUserManager1).set_UserTokenProvider((IUserTokenProvider <ApplicationUser, string>) new DataProtectorTokenProvider <ApplicationUser>(protectionProvider.Create(new string[1] { "ASP.NET Identity" }))); } return(applicationUserManager1); }
public PhoneAuthenticationController( ISmsService smsService, DataProtectorTokenProvider <ApplicationUser> dataProtectorTokenProvider, PhoneNumberTokenProvider <ApplicationUser> phoneNumberTokenProvider, UserManager <ApplicationUser> userManager) { _smsService = smsService; _dataProtectorTokenProvider = dataProtectorTokenProvider; _phoneNumberTokenProvider = phoneNumberTokenProvider; _userManager = userManager; }
public MobileController( IConfiguration configuration, ISmsService smsService, DataProtectorTokenProvider <UserIdentity> dataProtectorTokenProvider, PhoneNumberTokenProvider <UserIdentity> phoneNumberTokenProvider, UserManager <UserIdentity> userManager) { _configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); _smsService = smsService ?? throw new ArgumentNullException(nameof(smsService)); _dataProtectorTokenProvider = dataProtectorTokenProvider ?? throw new ArgumentNullException(nameof(dataProtectorTokenProvider)); _phoneNumberTokenProvider = phoneNumberTokenProvider ?? throw new ArgumentNullException(nameof(phoneNumberTokenProvider)); _userManager = userManager ?? throw new ArgumentNullException(nameof(userManager)); }
public VerifyPhoneNumberController( ISmsService smsService, DataProtectorTokenProvider <User> dataProtectorTokenProvider, PhoneNumberTokenProvider <User> phoneNumberTokenProvider, UserManager <User> userManager, ILogger <VerifyPhoneNumberController> logger) { _smsService = smsService ?? throw new ArgumentNullException(nameof(smsService)); _dataProtectorTokenProvider = dataProtectorTokenProvider ?? throw new ArgumentNullException(nameof(dataProtectorTokenProvider)); _phoneNumberTokenProvider = phoneNumberTokenProvider ?? throw new ArgumentNullException(nameof(phoneNumberTokenProvider)); _userManager = userManager ?? throw new ArgumentNullException(nameof(userManager)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public VerifyPhoneNumberTokenGrantValidator( PhoneNumberTokenProvider <ApplicationUser> phoneNumberTokenProvider, UserManager <ApplicationUser> userManager, SignInManager <ApplicationUser> signInManager, IEventService events, ILogger <VerifyPhoneNumberTokenGrantValidator> logger) { _phoneNumberTokenProvider = phoneNumberTokenProvider; _userManager = userManager; _signInManager = signInManager; _events = events; _logger = logger; }
/// <summary> /// Configure user manager. /// </summary> /// <typeparam name="TUser">Type of the user.</typeparam> /// <param name="manager">User manager which has to be configured.</param> /// <param name="emailDisplayName">Display name for the email service.</param> public static void ConfigureUserManager <TUser>(this UserManager <TUser> manager, string emailDisplayName) where TUser : DubUser { if (manager == null) { throw new ArgumentNullException("manager"); } if (string.IsNullOrWhiteSpace(emailDisplayName)) { throw new ArgumentException("Email display name could not be empty.", "emailDisplayName"); } manager.UserValidator = new UserValidator <TUser>(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; // 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. var phoneProvider = new PhoneNumberTokenProvider <TUser> { MessageFormat = "Your security code is {0}" }; var emailProvider = new EmailTokenProvider <TUser> { Subject = "Security Code", BodyFormat = "Your security code is {0}" }; manager.RegisterTwoFactorProvider("Phone Code", phoneProvider); manager.RegisterTwoFactorProvider("Email Code", emailProvider); manager.EmailService = new MarkdownEmailService(emailDisplayName); manager.SmsService = new EmptySmsService(); }
public AccountAppService( ISmsSender smsSender, IdentityUserManager userManager, IdentityUserStore userStore, IIdentityUserRepository userRepository, IDistributedCache <AccountRegisterVerifyCacheItem> cache, PhoneNumberTokenProvider <IdentityUser> phoneNumberTokenProvider) { Cache = cache; SmsSender = smsSender; UserStore = userStore; UserManager = userManager; UserRepository = userRepository; PhoneNumberTokenProvider = phoneNumberTokenProvider; LocalizationResource = typeof(Localization.AccountResource); }
public PhoneAuthenticationService( ISmsSender smsService, PhoneNumberTokenProvider <ApplicationUser> phoneNumberTokenProvider, UserManager <ApplicationUser> userManager, ILogger <PhoneAuthenticationService> logger, IEventService events, SignInManager <ApplicationUser> signInManager, IStringLocalizer <PhoneAuthenticationService> stringLocalizer) { _smsService = smsService; _phoneNumberTokenProvider = phoneNumberTokenProvider; _userManager = userManager; _logger = logger; _events = events; _signInManager = signInManager; _stringLocalizer = stringLocalizer; }
public SmsTokenGrantValidator( IEventService eventService, UserManager <IdentityUser> userManager, SignInManager <IdentityUser> signInManager, IIdentityUserRepository userRepository, IStringLocalizer <AbpIdentityServerResource> stringLocalizer, PhoneNumberTokenProvider <IdentityUser> phoneNumberTokenProvider, ILogger <SmsTokenGrantValidator> logger) { Logger = logger; EventService = eventService; UserManager = userManager; SignInManager = signInManager; Localizer = stringLocalizer; UserRepository = userRepository; PhoneNumberTokenProvider = phoneNumberTokenProvider; }
public async Task <int> VerifyResetPassword(ApplicationUser _User, string token, string newPassword) { if (_User != null && token != null) { PhoneNumberTokenProvider <ApplicationUser> phoneNumberTokenProvider = new PhoneNumberTokenProvider <ApplicationUser>(); var isValidToken = await phoneNumberTokenProvider.ValidateAsync("ResetPassword", token, _userManager, _User); if (isValidToken) { var status = await _userManager.AddPasswordAsync(_User, newPassword); if (status.Succeeded) { return(1); } } return(-1); } return(0); }
private static void RegisterUserManager(IWindsorContainer container, string connectionString) { var dbContext = GetDbContext(connectionString); IUserStore <ApplicationUser> userStore = new UserStore <ApplicationUser, ApplicationRole, ApplicationDbContext, Guid>(dbContext); IPasswordHasher <ApplicationUser> userHasher = new PasswordHasher <ApplicationUser>(); UserValidator <ApplicationUser> userValidator = new UserValidator <ApplicationUser>(); var validators = new UserValidator <ApplicationUser>[] { userValidator }; var userManager = new UserManager <ApplicationUser>(userStore, null, userHasher, validators, null, null, null, null, null); // Set-up token providers. IUserTwoFactorTokenProvider <ApplicationUser> tokenProvider = new EmailTokenProvider <ApplicationUser>(); userManager.RegisterTokenProvider("Default", tokenProvider); IUserTwoFactorTokenProvider <ApplicationUser> phoneTokenProvider = new PhoneNumberTokenProvider <ApplicationUser>(); userManager.RegisterTokenProvider("PhoneTokenProvider", phoneTokenProvider); container.Register(Component.For <UserManager <ApplicationUser> >().Instance(userManager)); }
public WeChatTokenGrantValidator( IEventService eventService, IWeChatOpenIdFinder weChatOpenIdFinder, IHttpClientFactory httpClientFactory, UserManager <IdentityUser> userManager, IIdentityUserRepository userRepository, SignInManager <IdentityUser> signInManager, IStringLocalizer <AbpIdentityServerResource> stringLocalizer, PhoneNumberTokenProvider <IdentityUser> phoneNumberTokenProvider, IOptions <AbpWeChatOptions> options, ILogger <WeChatTokenGrantValidator> logger) { Logger = logger; Options = options.Value; EventService = eventService; UserManager = userManager; SignInManager = signInManager; Localizer = stringLocalizer; UserRepository = userRepository; WeChatOpenIdFinder = weChatOpenIdFinder; HttpClientFactory = httpClientFactory; PhoneNumberTokenProvider = phoneNumberTokenProvider; }
public static async Task SeedAdmin(AdminSetupModel adminSetupModel, string defaultLocale, BaseDbContext dbContext) { var userStore = new UserStore <EformUser, EformRole, BaseDbContext, int, IdentityUserClaim <int>, EformUserRole, IdentityUserLogin <int>, IdentityUserToken <int>, IdentityRoleClaim <int> >(dbContext); IPasswordHasher <EformUser> hasher = new PasswordHasher <EformUser>(); var validator = new UserValidator <EformUser>(); var validators = new List <UserValidator <EformUser> > { validator }; var userManager = new UserManager <EformUser>(userStore, null, hasher, validators, null, null, null, null, null); // Set-up token providers. IUserTwoFactorTokenProvider <EformUser> tokenProvider = new EmailTokenProvider <EformUser>(); userManager.RegisterTokenProvider("Default", tokenProvider); IUserTwoFactorTokenProvider <EformUser> phoneTokenProvider = new PhoneNumberTokenProvider <EformUser>(); userManager.RegisterTokenProvider("PhoneTokenProvider", phoneTokenProvider); // Roles var roleStore = new RoleStore <EformRole, BaseDbContext, int>(dbContext); var roleManager = new RoleManager <EformRole>(roleStore, null, null, null, null); if (!await roleManager.RoleExistsAsync(EformRole.Admin)) { await roleManager.CreateAsync(new EformRole { Name = EformRole.Admin }); } if (!await roleManager.RoleExistsAsync(EformRole.User)) { await roleManager.CreateAsync(new EformRole { Name = EformRole.User }); } // Seed admin and demo users var timeZoneString = "Europe/Copenhagen"; try { TimeZoneInfo.FindSystemTimeZoneById(timeZoneString); } catch { timeZoneString = "E. Europe Standard Time"; } var adminUser = new EformUser { UserName = adminSetupModel.Email, Email = adminSetupModel.Email, FirstName = adminSetupModel.FirstName, LastName = adminSetupModel.LastName, Locale = string.IsNullOrEmpty(defaultLocale) ? LocaleNames.English : defaultLocale, TimeZone = timeZoneString, DarkTheme = true, Formats = LocaleNames.German, EmailConfirmed = true, TwoFactorEnabled = false, IsGoogleAuthenticatorEnabled = false }; if (!userManager.Users.Any(x => x.Email.Equals(adminUser.Email))) { var createResult = await userManager.CreateAsync(adminUser, adminSetupModel.Password); if (!createResult.Succeeded) { throw new Exception("Could not create the user"); } } var user = userManager.Users.FirstOrDefault(x => x.Email.Equals(adminUser.Email)); if (!await userManager.IsInRoleAsync(user, EformRole.Admin)) { await userManager.AddToRoleAsync(user, EformRole.Admin); } }