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