/// <summary> /// Attempts authentication using the given credentials. /// </summary> /// <param name="enteredCredentials">Entered credentials.</param> public virtual AuthenticationResult Authenticate(TEnteredCredentials enteredCredentials) { if (enteredCredentials == null) { throw new ArgumentNullException(nameof(enteredCredentials)); } var storedCredentials = CredentialsRepository.GetStoredCredentials(enteredCredentials); if (storedCredentials == null) { return(new AuthenticationResult(false, false)); } var verified = CredentialsVerifier.Verify(enteredCredentials, storedCredentials); return(new AuthenticationResult(true, verified)); }