public void btnIngresar_Click(object sender, EventArgs e) { try { if (txtUserName.Text != "" && txtPassword.Text != "") { // Armo usuario Usuario user = new Usuario(txtUserName.Text); if (txtUserName.Text == "admin") { // Pass hashing UTF8Encoding encoderHash = new UTF8Encoding(); SHA256Managed hasher = new SHA256Managed(); byte[] bytesDeHasheo = hasher.ComputeHash(encoderHash.GetBytes(txtPassword.Text)); string pass = bytesDeHasheoToString(bytesDeHasheo); if (!user.Password.Equals(pass)) { // llamar a VIDA_ESTATICA.updateIntentos user.ActualizarFallidos(); MessageBox.Show("Usuario y contraseña no validos", "Error!", MessageBoxButtons.OK); txtPassword.Text = ""; } else { // Está activo? if (!user.Activo) MessageBox.Show("Usuario inactivo para acceder al sistema", "Error!", MessageBoxButtons.OK); else { user.ReiniciarFallidos(); // Paso al form Principal (requiere user siempre) FormPrincipal formPrincipal = new FormPrincipal(user); this.Hide(); formPrincipal.Show(); } } } else { MessageBox.Show("Usuario y contraseña no validos", "Error!", MessageBoxButtons.OK); txtPassword.Text = ""; } } else MessageBox.Show("Complete todos los campos", "Error!", MessageBoxButtons.OK); } catch { MessageBox.Show("Usuario y contraseña no validos", "Error!", MessageBoxButtons.OK); txtPassword.Text = ""; } }
//Functions Section private void login(String username, String password) { String hashedPass = sha256(password); DAO.connect(); Usuario usuario = DAO.selectOne<Usuario>(new[] { "username = '******'"}); if (usuario == null) { MessageBox.Show("Usuario incorrecto.", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error); this.DialogResult = DialogResult.None; return; } IntentosLogin intentos = DAO.selectOne<IntentosLogin>(new[] { "usuario_id = " + usuario.Id }); DAO.closeConnection(); if (usuario != null && usuario.Password.Equals(hashedPass) && usuario.Activo) { intentos.Intentos = 0; DAO.connect(); DAO.update<IntentosLogin>(intentos); DAO.closeConnection(); this.DialogResult = DialogResult.OK; this.loggedUser = usuario; } else if (!usuario.Activo) { MessageBox.Show("El usuario se encuentra bloqueado por exceder los intentos de autenticación permitidos.", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error); this.DialogResult = DialogResult.None; } else { intentos.Intentos += 1; DAO.connect(); DAO.update<IntentosLogin>(intentos); if (intentos.Intentos == 3) { usuario.Activo = false; DAO.update<Usuario>(usuario); MessageBox.Show("El usuario fue bloqueado por exceder los intentos permitidos.", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show("Contraseña invalida. Recuerde que solo puede tener hasta 3 intentos fallidos. Le quedan " + (3 - intentos.Intentos) + " intentos.", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } DAO.closeConnection(); this.DialogResult = DialogResult.None; } }
public PantallaCliente(Usuario invoker) { InitializeComponent(); user = invoker; }