Exemple #1
0
        private void ClientHost_PasswordRequested(PasswordRequestEventArgs args)
        {
            var message = default(TextKey);
            var title   = default(TextKey);

            logger.Info($"Received input request with id '{args.RequestId}' for the {args.Purpose.ToString().ToLower()} password.");

            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();

            runtime.SubmitPassword(args.RequestId, result.Success, result.Password);
            logger.Info($"Password request with id '{args.RequestId}' was {(result.Success ? "successful" : "aborted by the user")}.");
        }
        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;
        }
Exemple #3
0
        private bool TryValidateQuitPassword()
        {
            var dialog = uiFactory.CreatePasswordDialog(TextKey.PasswordDialog_QuitPasswordRequired, TextKey.PasswordDialog_QuitPasswordRequiredTitle);
            var result = dialog.Show();

            if (result.Success)
            {
                var passwordHash = hashAlgorithm.GenerateHashFor(result.Password);
                var isCorrect    = appSettings.QuitPasswordHash.Equals(passwordHash, StringComparison.OrdinalIgnoreCase);

                if (isCorrect)
                {
                    logger.Info("The user entered the correct quit password, the application will now terminate.");
                }
                else
                {
                    logger.Info("The user entered the wrong quit password.");
                    messageBox.Show(TextKey.MessageBox_InvalidQuitPassword, TextKey.MessageBox_InvalidQuitPasswordTitle, icon: SebMessageBox.MessageBoxIcon.Warning);
                }

                return(isCorrect);
            }

            return(false);
        }
        private void HomeNavigationRequested()
        {
            if (isMainInstance && (settings.UseStartUrlAsHomeUrl || !string.IsNullOrWhiteSpace(settings.HomeUrl)))
            {
                var navigate = false;
                var url      = settings.UseStartUrlAsHomeUrl ? settings.StartUrl : settings.HomeUrl;

                if (settings.HomeNavigationRequiresPassword && !string.IsNullOrWhiteSpace(settings.HomePasswordHash))
                {
                    var message = text.Get(TextKey.PasswordDialog_BrowserHomePasswordRequired);
                    var title   = !string.IsNullOrWhiteSpace(settings.HomeNavigationMessage) ? settings.HomeNavigationMessage : text.Get(TextKey.PasswordDialog_BrowserHomePasswordRequiredTitle);
                    var dialog  = uiFactory.CreatePasswordDialog(message, title);
                    var result  = dialog.Show(window);

                    if (result.Success)
                    {
                        var passwordHash = hashAlgorithm.GenerateHashFor(result.Password);

                        if (settings.HomePasswordHash.Equals(passwordHash, StringComparison.OrdinalIgnoreCase))
                        {
                            navigate = true;
                        }
                        else
                        {
                            messageBox.Show(TextKey.MessageBox_InvalidHomePassword, TextKey.MessageBox_InvalidHomePasswordTitle, icon: MessageBoxIcon.Warning, parent: window);
                        }
                    }
                }
                else
                {
                    var message = text.Get(TextKey.MessageBox_BrowserHomeQuestion);
                    var title   = !string.IsNullOrWhiteSpace(settings.HomeNavigationMessage) ? settings.HomeNavigationMessage : text.Get(TextKey.MessageBox_BrowserHomeQuestionTitle);
                    var result  = messageBox.Show(message, title, MessageBoxAction.YesNo, MessageBoxIcon.Question, window);

                    navigate = result == MessageBoxResult.Yes;
                }

                if (navigate)
                {
                    control.NavigateTo(url);
                }
            }
        }