The AuthenticationManager calls the Authenticate method on registered authentication modules to determine which module handles the challenge. If the authentication module cannot handle the challenge, the Authenticate method must return Nothing. If the authentication module encounters an error while conducting the authentication process, Authenticate must throw an exception.