public LauncherSignInResult LauncherSignIn(LauncherSignInData data) { try { LauncherSignInResult result = new LauncherSignInResult(); bool succeeded = data.Authenticate(); if (succeeded == true) { result.Status = CheckInStatus.Ok; using (CSSDataContext db = new CSSDataContext()) { if (Identity.IsLinkedToAnOlderAccount(db, data.Username) == true) { result.LinkedAccount = Identity.GetOldestLinkedAcccountUsername(db, data.Username); result.Status = CheckInStatus.AccountLinked; } } } else { result.Status = CheckInStatus.InvalidCredentials; } return(result); } catch (Exception error) { Error.Write(error); throw; } }
private void LauncherSignInComplete(LauncherSignInResult launcherSignInResult) { if (string.IsNullOrEmpty(launcherSignInResult.LinkedAccount) == false) { //OfflineLaunch.ShowOfflineLaunchForLinkedAccount(this, AuthenticatedData.PersistedUser, launcherSignInResult.LinkedAccount); ShowOfflineLaunchOption(AuthenticatedData.PersistedUser, launcherSignInResult.LinkedAccount, true); return; } switch (launcherSignInResult.Status) { case CheckInStatus.AccountLinked: throw new Exception("Status: AccountLinked - should never get here."); case CheckInStatus.InvalidCredentials: ShowMessageBox("The stored account credentials are no longer valid, please log in again."); CompleteFormProgressAndClose(System.Windows.Forms.DialogResult.None); break; case CheckInStatus.InvalidHash: ShowMessageBox("The machine hash was not valid, please log in again."); CompleteFormProgressAndClose(System.Windows.Forms.DialogResult.None); break; case CheckInStatus.Ok: CompleteFormProgressAndClose(System.Windows.Forms.DialogResult.OK); break; case CheckInStatus.Timeout: ShowMessageBox("A timeout occurred trying to validate your stored credentials. Please log in again."); CompleteFormProgressAndClose(System.Windows.Forms.DialogResult.None); break; case CheckInStatus.VirtualMachineBlocked: ShowVirtualMachineInfo(true); break; case CheckInStatus.AccountLocked: ShowMessageBox("Your account has been locked, please go to the forums for help."); CompleteFormProgressAndClose(System.Windows.Forms.DialogResult.None); break; case CheckInStatus.PermissionDenied: ShowMessageBox("Permission denied, please see the forums for help."); CompleteFormProgressAndClose(System.Windows.Forms.DialogResult.None); break; default: throw new NotSupportedException(launcherSignInResult.Status.ToString()); } }
/// <summary> /// Verifies that the input username and password are correct /// </summary> public static void LauncherSignIn(string username, string password, LauncherSignInCompleteDelegate finished) { bool updatePersistedCredentials = String.IsNullOrEmpty(username) == false && String.IsNullOrEmpty(password) == false; if (updatePersistedCredentials == true) { AuthenticatedData.SetLogin(username, password); } TaskHandler.RunTask(delegate() { LauncherSignInResult result = new LauncherSignInResult(); try { LoginResult blackBoxData = Service.GetBlackBoxForUser(new LoginData() { Alias = AuthenticatedData.PersistedUser, LobbyId = null, LobbyIdSpecified = false, Password = AuthenticatedData.PersistedPass, SessionId = 0, SessionIdSpecified = false, Username = AuthenticatedData.PersistedUser }); if (blackBoxData.Status == LoginStatus.Authenticated) { Log.Write("ServiceHandler::LauncherSignIn() - Data received for: " + AuthenticatedData.PersistedUser + ", data length: " + blackBoxData.BlackboxData.Length); string message = null; string ticket = null; var checkInStatus = SessionNegotiator.ValidateLogin(blackBoxData.BlackboxData, ref message, ref ticket); if (checkInStatus != CheckInStatus.Ok && checkInStatus != CheckInStatus.AccountLinked) { result.Status = checkInStatus; result.StatusSpecified = true; result.LinkedAccount = String.Empty; } else { // Attempt to verify the login credentials result = Service.LauncherSignIn(new LauncherSignInData()); } } else { switch (blackBoxData.Status) { case LoginStatus.AccountLocked: result.Status = CheckInStatus.AccountLocked; break; case LoginStatus.InvalidCredentials: result.Status = CheckInStatus.InvalidCredentials; break; case LoginStatus.PermissionDenied: result.Status = CheckInStatus.PermissionDenied; break; default: throw new NotSupportedException(blackBoxData.Status.ToString()); } result.StatusSpecified = true; result.LinkedAccount = String.Empty; } } catch(Exception error) { result = new LauncherSignInResult() { Status = CheckInStatus.Timeout, StatusSpecified = false }; Log.Write(error); } if (result.StatusSpecified == true && result.Status == CheckInStatus.Ok) { DataStore.Callsigns = null; if (updatePersistedCredentials == true) AuthenticatedData.PersistLogin(username, AuthenticatedData.PersistedPass); } finished(result); }); }
/// <summary> /// Verifies that the input username and password are correct /// </summary> public static void LauncherSignIn(string username, string password, LauncherSignInCompleteDelegate finished) { bool updatePersistedCredentials = String.IsNullOrEmpty(username) == false && String.IsNullOrEmpty(password) == false; if (updatePersistedCredentials == true) { AuthenticatedData.SetLogin(username, password); } TaskHandler.RunTask(delegate() { LauncherSignInResult result = new LauncherSignInResult(); try { LoginResult blackBoxData = Service.GetBlackBoxForUser(new LoginData() { Alias = AuthenticatedData.PersistedUser, LobbyId = null, LobbyIdSpecified = false, Password = AuthenticatedData.PersistedPass, SessionId = 0, SessionIdSpecified = false, Username = AuthenticatedData.PersistedUser }); if (blackBoxData.Status == LoginStatus.Authenticated) { Log.Write("ServiceHandler::LauncherSignIn() - Data received for: " + AuthenticatedData.PersistedUser + ", data length: " + blackBoxData.BlackboxData.Length); string message = null; string ticket = null; var checkInStatus = SessionNegotiator.ValidateLogin(blackBoxData.BlackboxData, ref message, ref ticket); if (checkInStatus != CheckInStatus.Ok && checkInStatus != CheckInStatus.AccountLinked) { result.Status = checkInStatus; result.StatusSpecified = true; result.LinkedAccount = String.Empty; } else { // Attempt to verify the login credentials result = Service.LauncherSignIn(new LauncherSignInData()); } } else { switch (blackBoxData.Status) { case LoginStatus.AccountLocked: result.Status = CheckInStatus.AccountLocked; break; case LoginStatus.InvalidCredentials: result.Status = CheckInStatus.InvalidCredentials; break; case LoginStatus.PermissionDenied: result.Status = CheckInStatus.PermissionDenied; break; default: throw new NotSupportedException(blackBoxData.Status.ToString()); } result.StatusSpecified = true; result.LinkedAccount = String.Empty; } } catch (Exception error) { result = new LauncherSignInResult() { Status = CheckInStatus.Timeout, StatusSpecified = false }; Log.Write(error); } if (result.StatusSpecified == true && result.Status == CheckInStatus.Ok) { DataStore.Callsigns = null; if (updatePersistedCredentials == true) { AuthenticatedData.PersistLogin(username, AuthenticatedData.PersistedPass); } } finished(result); }); }
public LauncherSignInResult LauncherSignIn(LauncherSignInData data) { try { LauncherSignInResult result = new LauncherSignInResult(); string loginUserName; bool succeeded = data.Authenticate(out loginUserName); if (succeeded == true) { result.Status = CheckInStatus.Ok; result.LoginUserName = loginUserName; using (CSSDataContext db = new CSSDataContext()) { var login = DataAccess.Login.FindLoginByUsernameOrCallsign(db, data.Username); if (login == null) { result.Status = CheckInStatus.InvalidCredentials; } else if (Identity.IsLinkedToAnOlderAccount(db, data.Username) == true) { result.LinkedAccount = Identity.GetOldestLinkedAcccountUsername(db, data.Username); result.Status = CheckInStatus.AccountLinked; } else { result.LoginID = login.Id; } } } else { using (CSSDataContext db = new CSSDataContext()) { var login = DataAccess.Login.FindLoginByUsernameOrCallsign(db, data.Username); if (login == null) { result.Status = CheckInStatus.InvalidCredentials; } else if (login.IsBanned == true) { result.Status = CheckInStatus.AccountLocked; } else { result.Status = CheckInStatus.InvalidCredentials; } } } return(result); } catch (Exception error) { Error.Write(error); throw; } }