diff --git a/src/BrockAllen.MembershipReboot/AccountService/UserAccountService.cs b/src/BrockAllen.MembershipReboot/AccountService/UserAccountService.cs index b6583099..b35d4c6d 100644 --- a/src/BrockAllen.MembershipReboot/AccountService/UserAccountService.cs +++ b/src/BrockAllen.MembershipReboot/AccountService/UserAccountService.cs @@ -1965,7 +1965,7 @@ protected virtual bool IsVerificationKeyStale(TAccount account) return true; } - if (account.VerificationKeySent < UtcNow.AddMinutes(-MembershipRebootConstants.UserAccount.VerificationKeyStaleDurationMinutes)) + if (account.VerificationKeySent < UtcNow.AddMinutes(-Configuration.VerificationKeyStaleDurationMinutes)) { return true; } diff --git a/src/BrockAllen.MembershipReboot/Configuration/MembershipRebootConfiguration.cs b/src/BrockAllen.MembershipReboot/Configuration/MembershipRebootConfiguration.cs index 828d8f46..69322ae6 100644 --- a/src/BrockAllen.MembershipReboot/Configuration/MembershipRebootConfiguration.cs +++ b/src/BrockAllen.MembershipReboot/Configuration/MembershipRebootConfiguration.cs @@ -30,6 +30,7 @@ public MembershipRebootConfiguration(SecuritySettings securitySettings) this.AllowAccountDeletion = securitySettings.AllowAccountDeletion; this.PasswordHashingIterationCount = securitySettings.PasswordHashingIterationCount; this.PasswordResetFrequency = securitySettings.PasswordResetFrequency; + this.VerificationKeyStaleDurationMinutes = securitySettings.VerificationKeyStaleDurationMinutes; this.Crypto = new DefaultCrypto(); } @@ -45,6 +46,7 @@ public MembershipRebootConfiguration(SecuritySettings securitySettings) public bool AllowAccountDeletion { get; set; } public int PasswordHashingIterationCount { get; set; } public int PasswordResetFrequency { get; set; } + public int VerificationKeyStaleDurationMinutes { get; set; } AggregateValidator usernameValidators = new AggregateValidator(); public void RegisterUsernameValidator(params IValidator[] items) diff --git a/src/BrockAllen.MembershipReboot/Configuration/SecuritySettings.cs b/src/BrockAllen.MembershipReboot/Configuration/SecuritySettings.cs index bc63c950..38e819c3 100644 --- a/src/BrockAllen.MembershipReboot/Configuration/SecuritySettings.cs +++ b/src/BrockAllen.MembershipReboot/Configuration/SecuritySettings.cs @@ -51,6 +51,7 @@ static SecuritySettings GetConfigSection() private const string ALLOWACCOUNTDELETION = "allowAccountDeletion"; private const string PASSWORDHASHINGITERATIONCOUNT = "passwordHashingIterationCount"; private const string PASSWORDRESETFREQUENCY = "passwordResetFrequency"; + private const string VERIFICATIONKEYSTALEDURATIONMINUTES = "verificationKeyStaleDurationMinutes"; [ConfigurationProperty(MULTITENANT, DefaultValue = MembershipRebootConstants.SecuritySettingDefaults.MultiTenant)] public bool MultiTenant @@ -128,5 +129,12 @@ public int PasswordResetFrequency get { return (int)this[PASSWORDRESETFREQUENCY]; } set { this[PASSWORDRESETFREQUENCY] = value; } } + + [ConfigurationProperty(VERIFICATIONKEYSTALEDURATIONMINUTES, DefaultValue = MembershipRebootConstants.UserAccount.VerificationKeyStaleDurationMinutes)] + public int VerificationKeyStaleDurationMinutes + { + get { return (int)this[VERIFICATIONKEYSTALEDURATIONMINUTES]; } + set { this[VERIFICATIONKEYSTALEDURATIONMINUTES] = value; } + } } }