SignInManager now checks lockout support

This commit is contained in:
Hao Kung 2014-05-07 15:02:30 -07:00
parent f36ca3fb33
commit bfbd8892a1
2 changed files with 6 additions and 2 deletions

View File

@ -167,7 +167,7 @@ namespace Microsoft.AspNet.Identity.Security
{ {
return SignInStatus.Failure; return SignInStatus.Failure;
} }
if (await UserManager.IsLockedOutAsync(user)) if (UserManager.SupportsUserLockout && await UserManager.IsLockedOutAsync(user))
{ {
return SignInStatus.LockedOut; return SignInStatus.LockedOut;
} }
@ -177,7 +177,7 @@ namespace Microsoft.AspNet.Identity.Security
return SignInStatus.Success; return SignInStatus.Success;
//TODO: return await SignInOrTwoFactor(user, isPersistent); //TODO: return await SignInOrTwoFactor(user, isPersistent);
} }
if (shouldLockout) if (UserManager.SupportsUserLockout && shouldLockout)
{ {
// 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);

View File

@ -180,6 +180,7 @@ namespace Microsoft.AspNet.Identity.Security.Test
// Setup // Setup
var user = new TestUser { UserName = "Foo" }; var user = new TestUser { UserName = "Foo" };
var manager = MockHelpers.MockUserManager<TestUser>(); var manager = MockHelpers.MockUserManager<TestUser>();
manager.Setup(m => m.SupportsUserLockout).Returns(true).Verifiable();
manager.Setup(m => m.IsLockedOutAsync(user, CancellationToken.None)).ReturnsAsync(true).Verifiable(); manager.Setup(m => m.IsLockedOutAsync(user, CancellationToken.None)).ReturnsAsync(true).Verifiable();
manager.Setup(m => m.FindByNameAsync(user.UserName, CancellationToken.None)).ReturnsAsync(user).Verifiable(); manager.Setup(m => m.FindByNameAsync(user.UserName, CancellationToken.None)).ReturnsAsync(user).Verifiable();
var context = new Mock<HttpContext>(); var context = new Mock<HttpContext>();
@ -203,6 +204,7 @@ namespace Microsoft.AspNet.Identity.Security.Test
// Setup // Setup
var user = new TestUser { UserName = "Foo" }; var user = new TestUser { UserName = "Foo" };
var manager = MockHelpers.MockUserManager<TestUser>(); var manager = MockHelpers.MockUserManager<TestUser>();
manager.Setup(m => m.SupportsUserLockout).Returns(true).Verifiable();
manager.Setup(m => m.IsLockedOutAsync(user, CancellationToken.None)).ReturnsAsync(false).Verifiable(); manager.Setup(m => m.IsLockedOutAsync(user, CancellationToken.None)).ReturnsAsync(false).Verifiable();
manager.Setup(m => m.FindByNameAsync(user.UserName, CancellationToken.None)).ReturnsAsync(user).Verifiable(); manager.Setup(m => m.FindByNameAsync(user.UserName, CancellationToken.None)).ReturnsAsync(user).Verifiable();
manager.Setup(m => m.CheckPasswordAsync(user, "password", CancellationToken.None)).ReturnsAsync(true).Verifiable(); manager.Setup(m => m.CheckPasswordAsync(user, "password", CancellationToken.None)).ReturnsAsync(true).Verifiable();
@ -258,6 +260,7 @@ namespace Microsoft.AspNet.Identity.Security.Test
// Setup // Setup
var user = new TestUser { UserName = "Foo" }; var user = new TestUser { UserName = "Foo" };
var manager = MockHelpers.MockUserManager<TestUser>(); var manager = MockHelpers.MockUserManager<TestUser>();
manager.Setup(m => m.SupportsUserLockout).Returns(true).Verifiable();
manager.Setup(m => m.IsLockedOutAsync(user, CancellationToken.None)).ReturnsAsync(false).Verifiable(); manager.Setup(m => m.IsLockedOutAsync(user, CancellationToken.None)).ReturnsAsync(false).Verifiable();
manager.Setup(m => m.FindByNameAsync(user.UserName, CancellationToken.None)).ReturnsAsync(user).Verifiable(); manager.Setup(m => m.FindByNameAsync(user.UserName, CancellationToken.None)).ReturnsAsync(user).Verifiable();
manager.Setup(m => m.CheckPasswordAsync(user, "bogus", CancellationToken.None)).ReturnsAsync(false).Verifiable(); manager.Setup(m => m.CheckPasswordAsync(user, "bogus", CancellationToken.None)).ReturnsAsync(false).Verifiable();
@ -305,6 +308,7 @@ namespace Microsoft.AspNet.Identity.Security.Test
lockedout = true; lockedout = true;
return Task.FromResult(IdentityResult.Success); return Task.FromResult(IdentityResult.Success);
}).Verifiable(); }).Verifiable();
manager.Setup(m => m.SupportsUserLockout).Returns(true).Verifiable();
manager.Setup(m => m.IsLockedOutAsync(user, CancellationToken.None)).Returns(() => Task.FromResult(lockedout)); manager.Setup(m => m.IsLockedOutAsync(user, CancellationToken.None)).Returns(() => Task.FromResult(lockedout));
manager.Setup(m => m.FindByNameAsync(user.UserName, CancellationToken.None)).ReturnsAsync(user).Verifiable(); manager.Setup(m => m.FindByNameAsync(user.UserName, CancellationToken.None)).ReturnsAsync(user).Verifiable();
manager.Setup(m => m.CheckPasswordAsync(user, "bogus", CancellationToken.None)).ReturnsAsync(false).Verifiable(); manager.Setup(m => m.CheckPasswordAsync(user, "bogus", CancellationToken.None)).ReturnsAsync(false).Verifiable();