/// <summary> /// Demands authentication and then allows the user to change his or her contact information /// </summary> private static void PhoneEmail(object sender, System.EventArgs e) { #if !DEBUG bool isCanceled = Lock("ProtectedFeature", "Change Contact Information"); #endif if (!isCanceled) { string ma = UserConfigurations.MessagingAddress; int i = ma.IndexOf('@'); string em = UserConfigurations.EmailAddress; Enrollment f = new Enrollment(ma.Remove(i), ma.Remove(0, i), em); f.ShowDialog(); f.Dispose(); } }
static void Main() { if (AlreadyRunning()) { return; } Application.EnableVisualStyles(); AppDomain.CurrentDomain.ProcessExit += new EventHandler(Cleanup); ni = SetupNI(); pipeClient = new NamedPipeClientStream(".", "testpipe", PipeDirection.InOut, PipeOptions.Asynchronous, TokenImpersonationLevel.Impersonation); HeartBeatLock = false; System.Timers.Timer HeartBeat = new System.Timers.Timer(); HeartBeat.Interval = 1000; HeartBeat.Elapsed += beat; HeartBeat.Start(); service = new ServiceController("ActiveAuthenticationService", Environment.MachineName); HF = new HiddenForm(); if (!UserConfigurations.Registered) // User is new to active authentication, or has been invalidated by the owner. { while (!pipeClient.IsConnected) { // Wait for connection. } Enrollment EnrollmentForm = new Enrollment("", "", ""); while (!EnrollmentForm.Registered) // Keep popping up new enrollment forms until it is properly filled out. { EnrollmentForm.ShowDialog(); if (!EnrollmentForm.Registered) { // If the user tries to avoid giving contact information we explain why it is needed. MessageBox.Show("This system requires a valid set of contact information to function properly and securly." + " If you can not provide a valid set of contact information we appologize for the inconvienience, and this application can be uninstalled either with the control panel " + "uninstall applications function or by running the Installer.msi executable that you used to install the program, and selecting the remove option."); } } HF.openTrustWindow(); // Start training mode without the initial lock screen. } else if (!File.Exists(Configuration.ownerFile)) // If there is not an owner than this is the original installation of the program. { // In that case we set the user that installed the program (this user) as the owner. try { ss.WriteString("ChangeOwner"); if (ss.ReadString().Equals("Ready")) { ss.WriteString(Environment.UserName); } if (!ss.ReadString().Equals("Success")) MessageBox.Show("Error"); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } IDverify = new IdentityVerifier(); failCount = 0; //Start the keyboard hook then bind the eventhandler(s). KeyboardHook.Start(); Highlander = new Mutex(); KeyboardHook.KeyboardAction += new EventHandler<KeyboardHookEventArgs>(KeyboardEventCollect); #if DEBUG // KeyboardHook.KeyboardAction += new EventHandler<KeyboardHookEventArgs>(KeyboardEventBalloon); #endif #if Kahona DataSet TBC = new DataSet(); #if Nick1 TBC.ReadXml(Path.GetPathRoot(Environment.SystemDirectory)+@"Workspace\ActiveAuthenticationDesktopClient\KeyStrokeData\TheBigKahona.xml"); #elif Nick2 TBC.ReadXml(Path.GetPathRoot(Environment.SystemDirectory)+@"Workspace\ActiveAuthenticationDesktopClient\KeyStrokeData\KSData.xml"); #elif Nick3 TBC.ReadXml(Path.GetPathRoot(Environment.SystemDirectory)+@"Workspace\ActiveAuthenticationDesktopClient\KeyStrokeData\TheBigKahona2.xml"); #elif AZ1 TBC.ReadXml(Path.GetPathRoot(Environment.SystemDirectory)+@"Workspace\ActiveAuthenticationDesktopClient\KeyStrokeData\AZKahona.xml"); #endif DataTable BIG_ONE = TBC.Tables[0]; foreach (DataRow row in BIG_ONE.Rows) { IDverify.FileEvent(row); } #endif //Setup other hooks to catch events // ContextHook.Start(); // ContextHook.ContextChange += new EventHandler<ContextHookEventArgs>(ContextEvent); used for context specific version --N RawKeyboard.NewKeyboard += new EventHandler<RawKeyboardEventArgs>(New_Keyboard); NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(NetworkAvailabilityChange); Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SessionSwitch); Application.Run(); }