public virtual void RegisterTwoFactorProviders(int?tenantId) { TwoFactorProviders.Clear(); if (!IsTrue(AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsEnabled, tenantId)) { return; } if (EmailService != null && IsTrue(AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsEmailProviderEnabled, tenantId)) { RegisterTwoFactorProvider( L("Email"), new EmailTokenProvider <TUser, long> { Subject = L("EmailSecurityCodeSubject"), BodyFormat = L("EmailSecurityCodeBody") } ); } if (SmsService != null && IsTrue(AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsSmsProviderEnabled, tenantId)) { RegisterTwoFactorProvider( L("Sms"), new PhoneNumberTokenProvider <TUser, long> { MessageFormat = L("SmsSecurityCodeMessage") } ); } }
public TwoFactorProviderType?GetDefaultTwoFactorProvider(bool u2fSupported) { if (TwoFactorProvidersData == null) { return(null); } if (SelectedTwoFactorProviderType != null && TwoFactorProvidersData.ContainsKey(SelectedTwoFactorProviderType.Value)) { return(SelectedTwoFactorProviderType.Value); } TwoFactorProviderType?providerType = null; var providerPriority = -1; foreach (var providerKvp in TwoFactorProvidersData) { if (TwoFactorProviders.ContainsKey(providerKvp.Key)) { var provider = TwoFactorProviders[providerKvp.Key]; if (provider.Priority > providerPriority) { if (providerKvp.Key == TwoFactorProviderType.U2f && !u2fSupported) { continue; } providerType = providerKvp.Key; providerPriority = provider.Priority; } } } return(providerType); }
public virtual void RegisterTwoFactorProviders() { TwoFactorProviders.Clear(); if (false) { RegisterTwoFactorProvider( "邮箱", new EmailTokenProvider <TUser, long> { Subject = "安全码", BodyFormat = "您的安全码是: {0}" } ); } if (false) { RegisterTwoFactorProvider( "短信", new PhoneNumberTokenProvider <TUser, long> { MessageFormat = "您的短信验证码是: {0}" } ); } }
public virtual async Task <bool> VerifyTwoFactorTokenAsync(TUser user, string twoFactorProvider, string token) { ThrowIfDisposed(); if (user == null) { throw new ArgumentNullException("user"); } if (!TwoFactorProviders.ContainsKey(twoFactorProvider)) { throw new NotSupportedException("No TwoFactorProvider"); } return(await TwoFactorProviders[twoFactorProvider].ValidateAsync(twoFactorProvider, token, this, user)); }
private void ConfigureTwoFactorAuthentication() { TwoFactorProviders.Add("TwoFactorEmailAuth", new EmailTokenProvider <RocamAppUser, string>()); //TwoFactorProviders.Add("TwoFactorSmsAuth", new PhoneNumberTokenProvider<RocamAppUser, string>()); }