diff --git a/samples/IdentitySample.Mvc/Controllers/AccountController.cs b/samples/IdentitySample.Mvc/Controllers/AccountController.cs index 85006948b4..d7b462da76 100644 --- a/samples/IdentitySample.Mvc/Controllers/AccountController.cs +++ b/samples/IdentitySample.Mvc/Controllers/AccountController.cs @@ -46,7 +46,7 @@ namespace IdentitySample.Controllers ViewBag.ReturnUrl = returnUrl; if (ModelState.IsValid) { - var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false); + var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, lockoutOnFailure: false); if (result.Succeeded) { return RedirectToLocal(returnUrl); diff --git a/src/Microsoft.AspNet.Identity/LockoutOptions.cs b/src/Microsoft.AspNet.Identity/LockoutOptions.cs index 89d9a879a7..08ed86ac1e 100644 --- a/src/Microsoft.AspNet.Identity/LockoutOptions.cs +++ b/src/Microsoft.AspNet.Identity/LockoutOptions.cs @@ -10,7 +10,7 @@ namespace Microsoft.AspNet.Identity /// /// If true, will enable user lockout when users are created /// - public bool EnabledByDefault { get; set; } = false; + public bool AllowedForNewUsers { get; set; } = true; /// /// Number of access attempts allowed for a user before lockout (if enabled) diff --git a/src/Microsoft.AspNet.Identity/SignInManager.cs b/src/Microsoft.AspNet.Identity/SignInManager.cs index 11bddeb610..5586f2ba0a 100644 --- a/src/Microsoft.AspNet.Identity/SignInManager.cs +++ b/src/Microsoft.AspNet.Identity/SignInManager.cs @@ -160,7 +160,7 @@ namespace Microsoft.AspNet.Identity } public virtual async Task PasswordSignInAsync(TUser user, string password, - bool isPersistent, bool shouldLockout) + bool isPersistent, bool lockoutOnFailure) { if (user == null) { @@ -183,7 +183,7 @@ namespace Microsoft.AspNet.Identity await ResetLockout(user); return Logger.Log(await SignInOrTwoFactorAsync(user, isPersistent)); } - if (UserManager.SupportsUserLockout && shouldLockout) + if (UserManager.SupportsUserLockout && lockoutOnFailure) { // If lockout is requested, increment access failed count which might lock out the user await UserManager.AccessFailedAsync(user); @@ -198,7 +198,7 @@ namespace Microsoft.AspNet.Identity } public virtual async Task PasswordSignInAsync(string userName, string password, - bool isPersistent, bool shouldLockout) + bool isPersistent, bool lockoutOnFailure) { var user = await UserManager.FindByNameAsync(userName); if (user == null) @@ -206,7 +206,7 @@ namespace Microsoft.AspNet.Identity return SignInResult.Failed; } - return await PasswordSignInAsync(user, password, isPersistent, shouldLockout); + return await PasswordSignInAsync(user, password, isPersistent, lockoutOnFailure); } private static ClaimsIdentity CreateIdentity(TwoFactorAuthenticationInfo info) diff --git a/src/Microsoft.AspNet.Identity/UserManager.cs b/src/Microsoft.AspNet.Identity/UserManager.cs index f0350e034c..cb4df128aa 100644 --- a/src/Microsoft.AspNet.Identity/UserManager.cs +++ b/src/Microsoft.AspNet.Identity/UserManager.cs @@ -324,7 +324,7 @@ namespace Microsoft.AspNet.Identity { return result; } - if (Options.Lockout.EnabledByDefault && SupportsUserLockout) + if (Options.Lockout.AllowedForNewUsers && SupportsUserLockout) { await GetUserLockoutStore().SetLockoutEnabledAsync(user, true, CancellationToken); } diff --git a/test/Microsoft.AspNet.Identity.Test/IdentityOptionsTest.cs b/test/Microsoft.AspNet.Identity.Test/IdentityOptionsTest.cs index a6a27ae4b5..44fd0f1c68 100644 --- a/test/Microsoft.AspNet.Identity.Test/IdentityOptionsTest.cs +++ b/test/Microsoft.AspNet.Identity.Test/IdentityOptionsTest.cs @@ -19,7 +19,7 @@ namespace Microsoft.AspNet.Identity.Test public void VerifyDefaultOptions() { var options = new IdentityOptions(); - Assert.False(options.Lockout.EnabledByDefault); + Assert.True(options.Lockout.AllowedForNewUsers); Assert.Equal(TimeSpan.FromMinutes(5), options.Lockout.DefaultLockoutTimeSpan); Assert.Equal(5, options.Lockout.MaxFailedAccessAttempts); @@ -58,7 +58,7 @@ namespace Microsoft.AspNet.Identity.Test {"identity:password:RequireUpperCase", "false"}, {"identity:password:RequireDigit", "false"}, {"identity:password:RequireLowerCase", "false"}, - {"identity:lockout:EnabledByDefault", "TRUe"}, + {"identity:lockout:AllowedForNewUsers", "FALSe"}, {"identity:lockout:MaxFailedAccessAttempts", "1000"} }; var builder = new ConfigurationBuilder(new MemoryConfigurationSource(dic)); @@ -82,7 +82,7 @@ namespace Microsoft.AspNet.Identity.Test Assert.False(options.Password.RequireNonLetterOrDigit); Assert.False(options.Password.RequireUppercase); Assert.Equal(10, options.Password.RequiredLength); - Assert.True(options.Lockout.EnabledByDefault); + Assert.False(options.Lockout.AllowedForNewUsers); Assert.Equal(1000, options.Lockout.MaxFailedAccessAttempts); } diff --git a/test/Shared/MockHelpers.cs b/test/Shared/MockHelpers.cs index 870e1d564e..a07e1999c3 100644 --- a/test/Shared/MockHelpers.cs +++ b/test/Shared/MockHelpers.cs @@ -69,6 +69,7 @@ namespace Microsoft.AspNet.Identity.Test store = store ?? new Mock>().Object; var options = new Mock>(); var idOptions = new IdentityOptions(); + idOptions.Lockout.AllowedForNewUsers = false; options.Setup(o => o.Options).Returns(idOptions); var userValidators = new List>(); var validator = new Mock>(); diff --git a/test/Shared/UserManagerTestBase.cs b/test/Shared/UserManagerTestBase.cs index 1dc5089a86..c7314fd208 100644 --- a/test/Shared/UserManagerTestBase.cs +++ b/test/Shared/UserManagerTestBase.cs @@ -826,7 +826,6 @@ namespace Microsoft.AspNet.Identity.Test { var mgr = CreateManager(); mgr.Options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromHours(1); - mgr.Options.Lockout.EnabledByDefault = true; mgr.Options.Lockout.MaxFailedAccessAttempts = 0; var user = CreateTestUser(); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); @@ -843,7 +842,6 @@ namespace Microsoft.AspNet.Identity.Test { var mgr = CreateManager(); mgr.Options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromHours(1); - mgr.Options.Lockout.EnabledByDefault = true; mgr.Options.Lockout.MaxFailedAccessAttempts = 2; var user = CreateTestUser(); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); @@ -864,7 +862,6 @@ namespace Microsoft.AspNet.Identity.Test { var mgr = CreateManager(); mgr.Options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromHours(1); - mgr.Options.Lockout.EnabledByDefault = true; mgr.Options.Lockout.MaxFailedAccessAttempts = 2; var user = CreateTestUser(); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); @@ -890,6 +887,7 @@ namespace Microsoft.AspNet.Identity.Test { var mgr = CreateManager(); mgr.Options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromHours(1); + mgr.Options.Lockout.AllowedForNewUsers = false; mgr.Options.Lockout.MaxFailedAccessAttempts = 2; var user = CreateTestUser(); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); @@ -913,7 +911,6 @@ namespace Microsoft.AspNet.Identity.Test public async Task UserNotLockedOutWithNullDateTimeAndIsSetToNullDate() { var mgr = CreateManager(); - mgr.Options.Lockout.EnabledByDefault = true; var user = CreateTestUser(); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); Assert.True(await mgr.GetLockoutEnabledAsync(user)); @@ -927,6 +924,7 @@ namespace Microsoft.AspNet.Identity.Test public async Task LockoutFailsIfNotEnabled() { var mgr = CreateManager(); + mgr.Options.Lockout.AllowedForNewUsers = false; var user = CreateTestUser(); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); Assert.False(await mgr.GetLockoutEnabledAsync(user)); @@ -939,7 +937,6 @@ namespace Microsoft.AspNet.Identity.Test public async Task LockoutEndToUtcNowMinus1SecInUserShouldNotBeLockedOut() { var mgr = CreateManager(); - mgr.Options.Lockout.EnabledByDefault = true; var user = CreateTestUser(lockoutEnd: DateTimeOffset.UtcNow.AddSeconds(-1)); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); Assert.True(await mgr.GetLockoutEnabledAsync(user)); @@ -950,7 +947,6 @@ namespace Microsoft.AspNet.Identity.Test public async Task LockoutEndToUtcNowSubOneSecondWithManagerShouldNotBeLockedOut() { var mgr = CreateManager(); - mgr.Options.Lockout.EnabledByDefault = true; var user = CreateTestUser(); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); Assert.True(await mgr.GetLockoutEnabledAsync(user)); @@ -962,7 +958,6 @@ namespace Microsoft.AspNet.Identity.Test public async Task LockoutEndToUtcNowPlus5ShouldBeLockedOut() { var mgr = CreateManager(); - mgr.Options.Lockout.EnabledByDefault = true; var lockoutEnd = DateTimeOffset.UtcNow.AddMinutes(5); var user = CreateTestUser(lockoutEnd: lockoutEnd); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); @@ -974,7 +969,6 @@ namespace Microsoft.AspNet.Identity.Test public async Task UserLockedOutWithDateTimeLocalKindNowPlus30() { var mgr = CreateManager(); - mgr.Options.Lockout.EnabledByDefault = true; var user = CreateTestUser(); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); Assert.True(await mgr.GetLockoutEnabledAsync(user));