public async Task Login(string windowsLiveAuthServer) { // get identity Write("Microsoft Account Email Address: "); var identity = ReadLine(); // get password Write("Microsoft Account Password: "******"*"); } else { if (key.Key == ConsoleKey.Backspace && identityPassword.Length > 0) { identityPassword = identityPassword.Substring(0, (identityPassword.Length - 1)); Write("\b \b"); } } }while (key.Key != ConsoleKey.Enter); WriteLine(); // get two fac Write("Microsoft Account Two Factor Code (Optional): "); var identityTwoFactorCode = ReadLine(); Write("Authenticating with Windows Live... "); var windowsLiveAuthentication = await Authentication.AuthenticateWindowsLiveAsync(windowsLiveAuthServer, identity, identityPassword, identityTwoFactorCode); WriteLine("Done"); Write("Authenticating with Xbox Live... "); var xboxLiveAuthentication = await Authentication.AuthenticateXboxLiveAsync(windowsLiveAuthentication.AccessToken); WriteLine("Done"); Write("Authorizing with Xbox Live... "); var xboxLiveAuthorization = await Authentication.AuthorizeXboxLiveAsync(xboxLiveAuthentication.Token); WriteLine("Done"); var settings = GetSettings(); settings.AccessToken = windowsLiveAuthentication.AccessToken; settings.RefreshToken = windowsLiveAuthentication.RefreshToken; settings.ExpiresAt = DateTime.UtcNow.AddSeconds(windowsLiveAuthentication.ExpiresIn - 40); settings.XboxUserId = xboxLiveAuthorization.DisplayClaims.Xui[0].XboxUserId; settings.Token = xboxLiveAuthorization.Token; settings.AgeGate = xboxLiveAuthorization.DisplayClaims.Xui[0].AgeGate; settings.Gamertag = xboxLiveAuthorization.DisplayClaims.Xui[0].Gamertag; settings.UserHeaderSession = xboxLiveAuthorization.DisplayClaims.Xui[0].UserHeaderSession; SetSettings(settings); WriteLine(); WriteLine(" --- "); WriteLine(); WriteLine("Signed in as {0} ({1}) - {2} account.", settings.Gamertag, settings.XboxUserId, settings.AgeGate); }