public void When(UserLoginFailureReported e) { TrackedLoginFailures.Add(e.TimeUtc); // we track only X last failures while (TrackedLoginFailures.Count > FailuresAllowed) { TrackedLoginFailures.RemoveAt(0); } }
public bool DoesLastFailureWarrantLockout() { if (TrackedLoginFailures.Count < FailuresAllowed) { return(false); } if ((TrackedLoginFailures.Last() - TrackedLoginFailures.First()) < FailureLockoutWindow) { return(true); } return(false); }
public void When(UserLoginSuccessReported e) { TrackedLoginFailures.Clear(); LastLoginUtc = e.TimeUtc; }
public void When(UserUnlocked e) { TrackedLoginFailures.Clear(); LockedOutTillUtc = DateTime.MinValue; }