コード例 #1
0
        public void RetrieveCertificate(object o)
        {
            CertificateRegistration certReg = (CertificateRegistration)o;

            try
            {
                CertificateClient certificateClient = new CertificateClient();


                Assembly asm = Assembly.GetEntryAssembly();
                certificateClient.ProgramName    = asm.GetName().Name;
                certificateClient.ProgramVersion = AssemblyHelper.GetVersionString(asm);

                certificateClient.CertificateAuthorizationRequired += new EventHandler <EventArgs>(delegate
                {
                    this.LogMessage(Properties.Resources.Certificate_authorization_required, true);
                });

                certificateClient.EmailVerificationRequired += new EventHandler <EventArgs>(delegate
                {
                    this.LogMessage(Properties.Resources.GetNewCertificate_RetrieveCertificate_);
                    this.Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback) delegate
                    {
                        this.UsernameField.Text     = "";
                        this.EmailField.Text        = "";
                        this.PasswordField.Password = "";
                        this.ConfirmField.Password  = "";
                    }, null);
                });

                certificateClient.CertificateReceived += CertificateReceived;

                certificateClient.InvalidCertificateRegistration += InvalidCertificateRegistration;

                certificateClient.ServerErrorOccurred += ServerErrorOccured;

                certificateClient.NewProtocolVersion += new EventHandler <EventArgs>(delegate
                {
                    this.LogMessage(Properties.Resources.New_ProtocolVersion__Please_update_CrypTool_2_0, true);
                });

                certificateClient.RegisterCertificate(certReg);
            }
            catch (NetworkException nex)
            {
                this.LogMessage(String.Format(Properties.Resources.There_was_a_communication_problem_with_the_server, nex.Message), true);
            }
            catch (Exception ex)
            {
                this.LogMessage(String.Format(Properties.Resources.An_exception_occured___1, ex.Message), true);
            }
            finally
            {
                Requesting = false;
            }
        }
コード例 #2
0
        public static void RegisterCertificate(CertificateRegistration request, Action successAction, Action <ProcessingErrorEventArgs> processingError, Action <string> errorHandler)
        {
            var certificateClient = GetACertificateClient(errorHandler);

            certificateClient.InvalidCertificateRegistration += (sender, arg) => processingError(arg);
            certificateClient.InvalidEmailVerification       += (sender, arg) => processingError(arg);
            certificateClient.EmailVerificationRequired      += delegate { successAction(); };

            TryAsyncCommunication(() => certificateClient.RegisterCertificate(request), errorHandler);
        }
コード例 #3
0
        private void Request_Click(object sender, RoutedEventArgs e)
        {
            this.MessageLabel.Visibility = Visibility.Hidden;
            this.MessageBox.Visibility   = Visibility.Hidden;
            if (!Verification.IsValidAvatar(this.UsernameField.Text))
            {
                this.LogMessage(Properties.Resources.Username_is_not_valid_);
                this.UsernameField.Focus();
                this.UsernameField.SelectAll();
                return;
            }

            if (!Verification.IsValidEmailAddress(this.EmailField.Text))
            {
                this.LogMessage(Properties.Resources.Email_is_not_valid_);
                this.EmailField.Focus();
                this.EmailField.SelectAll();
                return;
            }

            if (this.PasswordField.Password != this.ConfirmField.Password)
            {
                this.LogMessage(Properties.Resources.Passwords_did_not_match_);
                this.PasswordField.Password = "";
                this.ConfirmField.Password  = "";
                this.PasswordField.Focus();
                return;
            }

            if (!Verification.IsValidPassword(this.PasswordField.Password))
            {
                this.LogMessage(Properties.Resources.Password_is_not_valid_);
                this.PasswordField.Password = "";
                this.ConfirmField.Password  = "";
                this.PasswordField.Focus();
                return;
            }

            Requesting = true;
            Thread thread = new Thread(new ParameterizedThreadStart(RetrieveCertificate));

            thread.CurrentCulture   = Thread.CurrentThread.CurrentCulture;
            thread.CurrentUICulture = Thread.CurrentThread.CurrentUICulture;
            CertificateRegistration certReg = new CertificateRegistration(this.UsernameField.Text,
                                                                          this.EmailField.Text,
                                                                          WorldName,
                                                                          this.PasswordField.Password);

            thread.Start(certReg);
        }
コード例 #4
0
ファイル: CreateAccountVM.cs プロジェクト: JarLob/CrypTool2
        private void CreateAccount()
        {
            if (!ValidateModel())
            {
                return;
            }

            var request = new CertificateRegistration
            {
                Avatar   = Username,
                Email    = Email,
                Password = Password.ToUnsecuredString(),
                World    = "CrypTool"
            };

            CAServerHelper.RegisterCertificate(request, ShowVerification, HandleProcessingError, ErrorHandler);

            ShowInputDialog = false;
            ShowWaitDialog  = true;
        }