private void TryGetPasswordViaClient(PasswordRequiredEventArgs args)
        {
            var requestId            = Guid.NewGuid();
            var response             = default(PasswordReplyEventArgs);
            var responseEvent        = new AutoResetEvent(false);
            var responseEventHandler = new CommunicationEventHandler <PasswordReplyEventArgs>((a) =>
            {
                if (a.RequestId == requestId)
                {
                    response = a;
                    responseEvent.Set();
                }
            });

            runtimeHost.PasswordReceived += responseEventHandler;

            var communication = sessionContext.ClientProxy.RequestPassword(args.Purpose, requestId);

            if (communication.Success)
            {
                responseEvent.WaitOne();
                args.Password = response.Password;
                args.Success  = response.Success;
            }
            else
            {
                args.Password = default(string);
                args.Success  = false;
            }

            runtimeHost.PasswordReceived -= responseEventHandler;
        }
        private void TryGetPasswordViaDialog(PasswordRequiredEventArgs args)
        {
            var message = default(TextKey);
            var title   = default(TextKey);

            switch (args.Purpose)
            {
            case PasswordRequestPurpose.LocalAdministrator:
                message = TextKey.PasswordDialog_LocalAdminPasswordRequired;
                title   = TextKey.PasswordDialog_LocalAdminPasswordRequiredTitle;
                break;

            case PasswordRequestPurpose.LocalSettings:
                message = TextKey.PasswordDialog_LocalSettingsPasswordRequired;
                title   = TextKey.PasswordDialog_LocalSettingsPasswordRequiredTitle;
                break;

            case PasswordRequestPurpose.Settings:
                message = TextKey.PasswordDialog_SettingsPasswordRequired;
                title   = TextKey.PasswordDialog_SettingsPasswordRequiredTitle;
                break;
            }

            var dialog = uiFactory.CreatePasswordDialog(text.Get(message), text.Get(title));
            var result = dialog.Show(runtimeWindow);

            args.Password = result.Password;
            args.Success  = result.Success;
        }
        public void Operations_MustNotWaitForPasswordViaClientIfCommunicationHasFailed()
        {
            var args = new PasswordRequiredEventArgs();

            currentSettings.KioskMode = KioskMode.CreateNewDesktop;
            clientProxy.Setup(c => c.RequestPassword(It.IsAny <PasswordRequestPurpose>(), It.IsAny <Guid>())).Returns(new CommunicationResult(false));

            sut.TryStart();
            sessionSequence.Raise(s => s.ActionRequired += null, args);
        }
Example #4
0
        protected bool TryGetPassword(PasswordRequestPurpose purpose, out string password)
        {
            var args = new PasswordRequiredEventArgs {
                Purpose = purpose
            };

            InvokeActionRequired(args);
            password = args.Password;

            return(args.Success);
        }
        void moonPdfPanel_PasswordRequired(object sender, PasswordRequiredEventArgs e)
        {
            var dlg = new PdfPasswordDialog();

            if (dlg.ShowDialog() == true)
            {
                e.Password = dlg.Password;
            }
            else
            {
                e.Cancel = true;
            }
        }
        private void AskForPassword(PasswordRequiredEventArgs args)
        {
            var isStartup = !SessionIsRunning;
            var isRunningOnDefaultDesktop = SessionIsRunning && Session.Settings.Security.KioskMode == KioskMode.DisableExplorerShell;

            if (isStartup || isRunningOnDefaultDesktop)
            {
                TryGetPasswordViaDialog(args);
            }
            else
            {
                TryGetPasswordViaClient(args);
            }
        }
        public void Operations_MustAbortAskingForPasswordViaClientIfDecidedByUser()
        {
            var args             = new PasswordRequiredEventArgs();
            var passwordReceived = new Action <PasswordRequestPurpose, Guid>((p, id) =>
            {
                runtimeHost.Raise(r => r.PasswordReceived += null, new PasswordReplyEventArgs {
                    RequestId = id, Success = false
                });
            });

            currentSettings.KioskMode = KioskMode.CreateNewDesktop;
            clientProxy.Setup(c => c.RequestPassword(It.IsAny <PasswordRequestPurpose>(), It.IsAny <Guid>())).Returns(new CommunicationResult(true)).Callback(passwordReceived);

            sut.TryStart();
            sessionSequence.Raise(s => s.ActionRequired += null, args);

            clientProxy.Verify(c => c.RequestPassword(It.IsAny <PasswordRequestPurpose>(), It.IsAny <Guid>()), Times.Once);
            uiFactory.Verify(u => u.CreatePasswordDialog(It.IsAny <string>(), It.IsAny <string>()), Times.Never);
        }
Example #8
0
        private void OnMessageGetPass()
        {
            if (string.IsNullOrEmpty(_settings.Password))
            {
                var ea = new PasswordRequiredEventArgs();
                OnPasswordRequired(ea);
                _settings.Password = ea.Password;
            }

            if (!string.IsNullOrEmpty(_settings.Password))
            {
                SendMessage(new MyPassMessage {
                    Password = _settings.Password
                }.Raw);
                Logger.Info("Password sent...");
            }
            else
            {
                Logger.Error("No password is supplied. Unable to log in.");
            }
        }
        public void Operations_MustRequestPasswordViaDialogOnDefaultDesktop()
        {
            var args           = new PasswordRequiredEventArgs();
            var passwordDialog = new Mock <IPasswordDialog>();
            var result         = new PasswordDialogResult {
                Password = "******", Success = true
            };

            currentSettings.Security.KioskMode = KioskMode.DisableExplorerShell;
            passwordDialog.Setup(p => p.Show(It.IsAny <IWindow>())).Returns(result);
            uiFactory.Setup(u => u.CreatePasswordDialog(It.IsAny <string>(), It.IsAny <string>())).Returns(passwordDialog.Object);

            sut.TryStart();
            sessionSequence.Raise(s => s.ActionRequired += null, args);

            clientProxy.VerifyNoOtherCalls();
            passwordDialog.Verify(p => p.Show(It.IsAny <IWindow>()), Times.Once);
            uiFactory.Verify(u => u.CreatePasswordDialog(It.IsAny <string>(), It.IsAny <string>()), Times.Once);

            Assert.AreEqual(true, args.Success);
            Assert.AreEqual(result.Password, args.Password);
        }
Example #10
0
 private void unrar_PasswordRequired(object sender, PasswordRequiredEventArgs e)
 {
     logger.Info("PasswordRequired - ");
 }
Example #11
0
 private void unrar_PasswordRequired(object sender, PasswordRequiredEventArgs e)
 {
     WriteLogEntry(LogType.Warning, "Password required to extract file, aborting");
     e.ContinueOperation = true;
 }
Example #12
0
 private void OnPasswordRequired(PasswordRequiredEventArgs e)
 {
     PasswordRequired?.Invoke(this, e);
 }