Rename shouldLockout => lockoutOnFailure

This commit is contained in:
Hao Kung 2015-06-16 14:39:26 -07:00
parent 5c0521df63
commit 1ed2ebcd96
7 changed files with 13 additions and 18 deletions

View File

@ -46,7 +46,7 @@ namespace IdentitySample.Controllers
ViewBag.ReturnUrl = returnUrl; ViewBag.ReturnUrl = returnUrl;
if (ModelState.IsValid) 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) if (result.Succeeded)
{ {
return RedirectToLocal(returnUrl); return RedirectToLocal(returnUrl);

View File

@ -10,7 +10,7 @@ namespace Microsoft.AspNet.Identity
/// <summary> /// <summary>
/// If true, will enable user lockout when users are created /// If true, will enable user lockout when users are created
/// </summary> /// </summary>
public bool EnabledByDefault { get; set; } = false; public bool AllowedForNewUsers { get; set; } = true;
/// <summary> /// <summary>
/// Number of access attempts allowed for a user before lockout (if enabled) /// Number of access attempts allowed for a user before lockout (if enabled)

View File

@ -160,7 +160,7 @@ namespace Microsoft.AspNet.Identity
} }
public virtual async Task<SignInResult> PasswordSignInAsync(TUser user, string password, public virtual async Task<SignInResult> PasswordSignInAsync(TUser user, string password,
bool isPersistent, bool shouldLockout) bool isPersistent, bool lockoutOnFailure)
{ {
if (user == null) if (user == null)
{ {
@ -183,7 +183,7 @@ namespace Microsoft.AspNet.Identity
await ResetLockout(user); await ResetLockout(user);
return Logger.Log(await SignInOrTwoFactorAsync(user, isPersistent)); 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 // If lockout is requested, increment access failed count which might lock out the user
await UserManager.AccessFailedAsync(user); await UserManager.AccessFailedAsync(user);
@ -198,7 +198,7 @@ namespace Microsoft.AspNet.Identity
} }
public virtual async Task<SignInResult> PasswordSignInAsync(string userName, string password, public virtual async Task<SignInResult> PasswordSignInAsync(string userName, string password,
bool isPersistent, bool shouldLockout) bool isPersistent, bool lockoutOnFailure)
{ {
var user = await UserManager.FindByNameAsync(userName); var user = await UserManager.FindByNameAsync(userName);
if (user == null) if (user == null)
@ -206,7 +206,7 @@ namespace Microsoft.AspNet.Identity
return SignInResult.Failed; return SignInResult.Failed;
} }
return await PasswordSignInAsync(user, password, isPersistent, shouldLockout); return await PasswordSignInAsync(user, password, isPersistent, lockoutOnFailure);
} }
private static ClaimsIdentity CreateIdentity(TwoFactorAuthenticationInfo info) private static ClaimsIdentity CreateIdentity(TwoFactorAuthenticationInfo info)

View File

@ -324,7 +324,7 @@ namespace Microsoft.AspNet.Identity
{ {
return result; return result;
} }
if (Options.Lockout.EnabledByDefault && SupportsUserLockout) if (Options.Lockout.AllowedForNewUsers && SupportsUserLockout)
{ {
await GetUserLockoutStore().SetLockoutEnabledAsync(user, true, CancellationToken); await GetUserLockoutStore().SetLockoutEnabledAsync(user, true, CancellationToken);
} }

View File

@ -19,7 +19,7 @@ namespace Microsoft.AspNet.Identity.Test
public void VerifyDefaultOptions() public void VerifyDefaultOptions()
{ {
var options = new IdentityOptions(); var options = new IdentityOptions();
Assert.False(options.Lockout.EnabledByDefault); Assert.True(options.Lockout.AllowedForNewUsers);
Assert.Equal(TimeSpan.FromMinutes(5), options.Lockout.DefaultLockoutTimeSpan); Assert.Equal(TimeSpan.FromMinutes(5), options.Lockout.DefaultLockoutTimeSpan);
Assert.Equal(5, options.Lockout.MaxFailedAccessAttempts); Assert.Equal(5, options.Lockout.MaxFailedAccessAttempts);
@ -58,7 +58,7 @@ namespace Microsoft.AspNet.Identity.Test
{"identity:password:RequireUpperCase", "false"}, {"identity:password:RequireUpperCase", "false"},
{"identity:password:RequireDigit", "false"}, {"identity:password:RequireDigit", "false"},
{"identity:password:RequireLowerCase", "false"}, {"identity:password:RequireLowerCase", "false"},
{"identity:lockout:EnabledByDefault", "TRUe"}, {"identity:lockout:AllowedForNewUsers", "FALSe"},
{"identity:lockout:MaxFailedAccessAttempts", "1000"} {"identity:lockout:MaxFailedAccessAttempts", "1000"}
}; };
var builder = new ConfigurationBuilder(new MemoryConfigurationSource(dic)); 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.RequireNonLetterOrDigit);
Assert.False(options.Password.RequireUppercase); Assert.False(options.Password.RequireUppercase);
Assert.Equal(10, options.Password.RequiredLength); Assert.Equal(10, options.Password.RequiredLength);
Assert.True(options.Lockout.EnabledByDefault); Assert.False(options.Lockout.AllowedForNewUsers);
Assert.Equal(1000, options.Lockout.MaxFailedAccessAttempts); Assert.Equal(1000, options.Lockout.MaxFailedAccessAttempts);
} }

View File

@ -69,6 +69,7 @@ namespace Microsoft.AspNet.Identity.Test
store = store ?? new Mock<IUserStore<TUser>>().Object; store = store ?? new Mock<IUserStore<TUser>>().Object;
var options = new Mock<IOptions<IdentityOptions>>(); var options = new Mock<IOptions<IdentityOptions>>();
var idOptions = new IdentityOptions(); var idOptions = new IdentityOptions();
idOptions.Lockout.AllowedForNewUsers = false;
options.Setup(o => o.Options).Returns(idOptions); options.Setup(o => o.Options).Returns(idOptions);
var userValidators = new List<IUserValidator<TUser>>(); var userValidators = new List<IUserValidator<TUser>>();
var validator = new Mock<IUserValidator<TUser>>(); var validator = new Mock<IUserValidator<TUser>>();

View File

@ -826,7 +826,6 @@ namespace Microsoft.AspNet.Identity.Test
{ {
var mgr = CreateManager(); var mgr = CreateManager();
mgr.Options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromHours(1); mgr.Options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromHours(1);
mgr.Options.Lockout.EnabledByDefault = true;
mgr.Options.Lockout.MaxFailedAccessAttempts = 0; mgr.Options.Lockout.MaxFailedAccessAttempts = 0;
var user = CreateTestUser(); var user = CreateTestUser();
IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user));
@ -843,7 +842,6 @@ namespace Microsoft.AspNet.Identity.Test
{ {
var mgr = CreateManager(); var mgr = CreateManager();
mgr.Options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromHours(1); mgr.Options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromHours(1);
mgr.Options.Lockout.EnabledByDefault = true;
mgr.Options.Lockout.MaxFailedAccessAttempts = 2; mgr.Options.Lockout.MaxFailedAccessAttempts = 2;
var user = CreateTestUser(); var user = CreateTestUser();
IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user));
@ -864,7 +862,6 @@ namespace Microsoft.AspNet.Identity.Test
{ {
var mgr = CreateManager(); var mgr = CreateManager();
mgr.Options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromHours(1); mgr.Options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromHours(1);
mgr.Options.Lockout.EnabledByDefault = true;
mgr.Options.Lockout.MaxFailedAccessAttempts = 2; mgr.Options.Lockout.MaxFailedAccessAttempts = 2;
var user = CreateTestUser(); var user = CreateTestUser();
IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user));
@ -890,6 +887,7 @@ namespace Microsoft.AspNet.Identity.Test
{ {
var mgr = CreateManager(); var mgr = CreateManager();
mgr.Options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromHours(1); mgr.Options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromHours(1);
mgr.Options.Lockout.AllowedForNewUsers = false;
mgr.Options.Lockout.MaxFailedAccessAttempts = 2; mgr.Options.Lockout.MaxFailedAccessAttempts = 2;
var user = CreateTestUser(); var user = CreateTestUser();
IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user));
@ -913,7 +911,6 @@ namespace Microsoft.AspNet.Identity.Test
public async Task UserNotLockedOutWithNullDateTimeAndIsSetToNullDate() public async Task UserNotLockedOutWithNullDateTimeAndIsSetToNullDate()
{ {
var mgr = CreateManager(); var mgr = CreateManager();
mgr.Options.Lockout.EnabledByDefault = true;
var user = CreateTestUser(); var user = CreateTestUser();
IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user));
Assert.True(await mgr.GetLockoutEnabledAsync(user)); Assert.True(await mgr.GetLockoutEnabledAsync(user));
@ -927,6 +924,7 @@ namespace Microsoft.AspNet.Identity.Test
public async Task LockoutFailsIfNotEnabled() public async Task LockoutFailsIfNotEnabled()
{ {
var mgr = CreateManager(); var mgr = CreateManager();
mgr.Options.Lockout.AllowedForNewUsers = false;
var user = CreateTestUser(); var user = CreateTestUser();
IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user));
Assert.False(await mgr.GetLockoutEnabledAsync(user)); Assert.False(await mgr.GetLockoutEnabledAsync(user));
@ -939,7 +937,6 @@ namespace Microsoft.AspNet.Identity.Test
public async Task LockoutEndToUtcNowMinus1SecInUserShouldNotBeLockedOut() public async Task LockoutEndToUtcNowMinus1SecInUserShouldNotBeLockedOut()
{ {
var mgr = CreateManager(); var mgr = CreateManager();
mgr.Options.Lockout.EnabledByDefault = true;
var user = CreateTestUser(lockoutEnd: DateTimeOffset.UtcNow.AddSeconds(-1)); var user = CreateTestUser(lockoutEnd: DateTimeOffset.UtcNow.AddSeconds(-1));
IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user));
Assert.True(await mgr.GetLockoutEnabledAsync(user)); Assert.True(await mgr.GetLockoutEnabledAsync(user));
@ -950,7 +947,6 @@ namespace Microsoft.AspNet.Identity.Test
public async Task LockoutEndToUtcNowSubOneSecondWithManagerShouldNotBeLockedOut() public async Task LockoutEndToUtcNowSubOneSecondWithManagerShouldNotBeLockedOut()
{ {
var mgr = CreateManager(); var mgr = CreateManager();
mgr.Options.Lockout.EnabledByDefault = true;
var user = CreateTestUser(); var user = CreateTestUser();
IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user));
Assert.True(await mgr.GetLockoutEnabledAsync(user)); Assert.True(await mgr.GetLockoutEnabledAsync(user));
@ -962,7 +958,6 @@ namespace Microsoft.AspNet.Identity.Test
public async Task LockoutEndToUtcNowPlus5ShouldBeLockedOut() public async Task LockoutEndToUtcNowPlus5ShouldBeLockedOut()
{ {
var mgr = CreateManager(); var mgr = CreateManager();
mgr.Options.Lockout.EnabledByDefault = true;
var lockoutEnd = DateTimeOffset.UtcNow.AddMinutes(5); var lockoutEnd = DateTimeOffset.UtcNow.AddMinutes(5);
var user = CreateTestUser(lockoutEnd: lockoutEnd); var user = CreateTestUser(lockoutEnd: lockoutEnd);
IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user));
@ -974,7 +969,6 @@ namespace Microsoft.AspNet.Identity.Test
public async Task UserLockedOutWithDateTimeLocalKindNowPlus30() public async Task UserLockedOutWithDateTimeLocalKindNowPlus30()
{ {
var mgr = CreateManager(); var mgr = CreateManager();
mgr.Options.Lockout.EnabledByDefault = true;
var user = CreateTestUser(); var user = CreateTestUser();
IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user)); IdentityResultAssert.IsSuccess(await mgr.CreateAsync(user));
Assert.True(await mgr.GetLockoutEnabledAsync(user)); Assert.True(await mgr.GetLockoutEnabledAsync(user));