private static bool handleEnterpriseSignIn(Credentials credentials, SignInTicket ticket, ObjectStore os) { ticket.SetStatus(Resources.DownloadingConnectListEllipsis_Text); EnterpriseInfo = new EnterpriseInfo(os, ticket.UserName); if (!EnterpriseInfo.IsValid) { ticket.SetError(Credentials.FromResponse(AuthenticateResponse.ClientSideError, Resources.NoServersForUser_Text)); return false; } object value; if (credentials.TryGetValue(Credentials.TimeOffsetId, typeof(TimeSpan), out value)) { _enterpriseTimeOffset = (TimeSpan)value; } EnterpriseServer = ticket.Server; EnterpriseObjectStore = os; return true; }
public static bool SignIn(SignInTicket ticket, out int exitCode) { EnterpriseServer = null; EnterpriseObjectStore = null; exitCode = (int)LocalUIExitCode.Error; // Ideally we'd get the user and check for permissions, etc. but that would be another server round trip // and for now I'm doing it this way. if (ticket.UserName.Equals(UserNames.SpotMonitorUserName, StringComparison.InvariantCultureIgnoreCase) || ticket.UserName.Equals(UserNames.AlertViewerUserName, StringComparison.InvariantCultureIgnoreCase)) { exitCode = (int)LocalUIExitCode.IncorrectUserOrPassword; ticket.Status(string.Format(Resources.UserDoesNotHavePermissionToSignInSpec_Text, ticket.UserName), true); return false; } var credentials = ticket.Process(TicketFlags.NoUpgradeRedirect | TicketFlags.ConfigureLogging, out _os); if (!credentials.Valid) { ticket.SetError(credentials); return false; } if (credentials.AuthenticateType != AuthenticateType.EnterpriseServer) { ticket.SetError(Resources.NotEnterpriseServer_Text); return false; } if (!handleEnterpriseSignIn(credentials, ticket, _os)) { exitCode = (int)LocalUIExitCode.IncorrectUserOrPassword; return false; } _ticket = ticket; _enterpriseTimeOffset = TimeSpan.Zero; object value; if (credentials.TryGetValue(Credentials.TimeOffsetId, typeof(TimeSpan), out value)) { _enterpriseTimeOffset = (TimeSpan)value; //// we don't want to include the time zone difference in the ServerTimeOffset //var timeZoneDelta = DateTimeOffset.Now.Offset - ActiveCoreTime.Offset; ////VideoOverseer.SetServerTimeOffset(_activeCoreTimeOffset + timeZoneDelta); TimeUtils.ServerOffset = EnterpriseTime.Offset; if (_os != null) { TimeUtils.ServerTimeZone = _os.TimeZoneData; } } AppLogin.Initialize(credentials.UserGuid, ticket.UserName, ticket.Password, ticket.EngineerPassword, ticket.ConnectionSpeed); SignInServer = ticket.Server; AppLogin.MachineHardware = _ticket.Server.HardwareVersion; AppLogin.StartedByShell = Runtime.IsLocalHost(SignInServer.HostAddress); _monitor = ConnectionMonitor.GetConnectionMonitor(_ticket.Server); _monitor.ConnectionStatusChanged += monitor_ConnectionStatusChanged; UserName = credentials.GetString(Credentials.UserFullNameId); LoginUserName = ticket.UserName; EnterpriseName = Ticket.Server.DisplayName; exitCode = (int)LocalUIExitCode.Ok; return true; }