Implement working login dialog; keychain support is not yet wired up.