Пример #1
0
        async void btnLogin_Click(object sender, RoutedEventArgs e)
        {
            LoginSucceed(this, null);
            return;

            if (pressedValidate)
            {
                return;
            }

            pressedValidate = true;

            loadingLogin.IsActive = true;

            await Task.Delay(1000);

            string username = userIdBox.Text;
            string password = passwordBox.Password;

            string loginStatus = "ERR";

            BackgroundWorker bw = new BackgroundWorker();

            if (username.Length > 0 && password.Length > 0)
            {
                bw.DoWork += new DoWorkEventHandler(
                    delegate(object o, DoWorkEventArgs args)
                {
                    password = GetSHA256Hash(new SHA256Managed(), GetMd5Hash(MD5.Create(), password));

                    // Check authentification
                    using (var wb = new WebClient())
                    {
                        var data     = new System.Collections.Specialized.NameValueCollection();
                        data["user"] = username;
                        data["pass"] = password;

                        AuthAnswer answer = null;
                        try
                        {
                            string response = System.Text.Encoding.UTF8.GetString(wb.UploadValues("http://www.fpsdesigner.com/sft/login.php", "POST", data));
                            answer          = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <AuthAnswer>(response);

                            loginStatus = answer.ans;
                        }
                        catch (Exception exc)
                        {
                            Console.WriteLine("Login error occured: " + exc.GetType());
                        }
                    }
                });
            }
            else
            {
                loginStatus = "WP";
            }

            bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(
                delegate(object o, RunWorkerCompletedEventArgs args)
            {
                loadingLogin.IsActive = false;
                if (loginStatus != "OK")
                {
                    if (loginStatus == "ERR")
                    {
                        textLoginIncorrect.Text = "An unexpected error occured.\nPlease check your internet connection to log in.";
                    }
                    else if (loginStatus == "WP")
                    {
                        textLoginIncorrect.Text = "Identifiants incorrects !";
                    }

                    DoubleAnimation opacityAnim = new DoubleAnimation(0, 1, new Duration(TimeSpan.FromMilliseconds(500)));
                    textLoginIncorrect.BeginAnimation(OpacityProperty, opacityAnim);
                    imgLoginIncorrect.BeginAnimation(OpacityProperty, opacityAnim);
                    pressedValidate = false;
                }
                else
                {
                    // Login succeed
                    LoginSucceed(this, null);
                }
            });

            bw.RunWorkerAsync();
        }
Пример #2
0
        void DoRegister(object sender, ElapsedEventArgs e)
        {
            timerAnim.Enabled = false;
            this.Dispatcher.Invoke((Action)(() =>
            {
                // Check if all element are filled in
                for (int i = 0; i < FieldsGrid.Children.Count; i++)
                {
                    UIElement elt = FieldsGrid.Children[i];
                    if (elt is TextBox && ((TextBox)elt).Text.Length == 0 || elt is PasswordBox && ((PasswordBox)elt).Password.Length == 0)
                    {
                        ShowError("Le champ \"" + ((Label)FieldsGrid.Children[i - 1]).Content + "\" doit être complété.");
                        return;
                    }
                }
                if (userName.Text.Length < 4 || userName.Text.Length > 30)
                {
                    ShowError("Le nom d'utilisateur doit contenir de 4 à 30 caractères.");
                    return;
                }
                else if (passwordBox.Password != passwordBox2.Password)
                {
                    ShowError("Les deux mots de passe ne sont pas équivalents.");
                    return;
                }
                else if (emailAddress.Text.Length < 3 || !IsValidEmail(emailAddress.Text))
                {
                    ShowError("L'adresse E-Mail entrée est incorrecte.");
                    return;
                }

                string registerStatus = "ERR";

                // Datas sent to the server
                var data = new System.Collections.Specialized.NameValueCollection();
                data["username"] = userName.Text;
                data["pass"] = passwordBox.Password;
                data["pass2"] = passwordBox2.Password;
                data["email"] = emailAddress.Text;
                data["firstname"] = firstname.Text;
                data["name"] = name.Text;
                data["birthday"] = birthday.Text;

                BackgroundWorker bw = new BackgroundWorker();
                bw.DoWork += new DoWorkEventHandler(
                    delegate(object o, DoWorkEventArgs args)
                {
                    // Check authentification
                    using (var wb = new WebClient())
                    {
                        AuthAnswer answer = null;
                        try
                        {
                            string response = System.Text.Encoding.UTF8.GetString(wb.UploadValues("http://www.fpsdesigner.com/sft/register.php", "POST", data));
                            answer = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <AuthAnswer>(response);

                            registerStatus = answer.ans;
                        }
                        catch (Exception exc)
                        {
                            Console.WriteLine("Register error occured: " + exc.GetType());
                            ShowError("Impossible de contacter le serveur.");
                            return;
                        }
                    }
                });

                bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(
                    delegate(object o, RunWorkerCompletedEventArgs args)
                {
                    if (registerStatus != "OK")
                    {
                        ShowError("Impossible de contacter le serveur.");
                        return;
                    }
                    else
                    {
                        // Register succeed
                        RegisterSucceed(this, null);
                    }
                });

                bw.RunWorkerAsync();
            }));
        }