Beispiel #1
0
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            string msg = string.Empty;

            errorProvider1.SetError(rtxtUsuario, "");
            errorProvider1.SetError(rtxtContrasenia, "");

            try {
                #region Validaciones Acceso Al Sistema
                if (rtxtUsuario.Text.Trim().Length.Equals(0))
                {
                    msg = "- Ingrese el usuario" + Environment.NewLine;
                    errorProvider1.SetError(rtxtUsuario, "Ingrese el usuario");
                }

                if (rtxtContrasenia.Text.Trim().Length.Equals(0))
                {
                    msg += "- Ingrese la contraseña";
                    errorProvider1.SetError(rtxtContrasenia, "Ingrese la contraseña");
                }

                //SE OBTIENE EL ID DE LA EMPRESA SELECCIONADA
                Empresa = int.Parse(cboEmpresas.SelectedValue.ToString());

                if (msg.Length.Equals(0))
                {
                    WCF_Seguridad.Hersan_SeguridadClient wcf = new WCF_Seguridad.Hersan_SeguridadClient();
                    ValidaIngresoBE val = wcf.ValidaUsuario(rtxtUsuario.Text.Trim(), new EncriptadorBP().EncriptarTexto(rtxtContrasenia.Text.Trim()));

                    if (val.EsIngresoValido)
                    {
                        BaseWinBP.ListadoMenu     = wcf.ObtenerMenuUsuario(rtxtUsuario.Text.Trim());
                        BaseWinBP.UsuarioLogueado = wcf.ObtieneDatosUsuario(rtxtUsuario.Text.Trim());
                        this.DialogResult         = DialogResult.OK;
                        this.Close();
                    }
                    else
                    {
                        RadMessageBox.Show(val.ErrorIngreso, this.Text, MessageBoxButtons.OK, RadMessageIcon.Info);
                        this.DialogResult = DialogResult.None;
                    }
                }
                else
                {
                    RadMessageBox.Show("Datos Obligatorios" + Environment.NewLine + msg, this.Text, MessageBoxButtons.OK, RadMessageIcon.Info);
                    this.DialogResult = DialogResult.None;
                }
                #endregion
            } catch (Exception ex) {
                RadMessageBox.Show("Ocurrio un error al validar al usuario:" + ex.Message, this.Text, MessageBoxButtons.OK, RadMessageIcon.Info);
                this.DialogResult = DialogResult.None;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Verifica si hay bloqueo del usuario
        /// </summary>
        /// <param name="nomUsr">Cuenta usuario</param>
        /// <returns></returns>
        public ValidaIngresoBE ObtienBloqueoUsuario(string nomUsr)
        {
            ValidaIngresoBE val = new ValidaIngresoBE();

            val.ErrorIngreso = string.Empty;
            try {
                using (SqlConnection conn = new SqlConnection(RecuperarCadenaDeConexion())) {
                    conn.Open();
                    using (SqlCommand cmd = new SqlCommand(CSTR_SP_OBTIENEBLOQUEOUSUARIO, conn)) {
                        cmd.Parameters.AddWithValue("@Usuario", nomUsr);

                        cmd.CommandType = CommandType.StoredProcedure;

                        using (SqlDataReader reader = cmd.ExecuteReader()) {
                            if (reader.Read())
                            {
                                if (reader["usu_FecBloqueo"] != System.DBNull.Value)
                                {
                                    DateTime dtFActual = DateTime.Parse(reader["FECACTUAL"].ToString());
                                    DateTime dtFDBlo   = DateTime.Parse(reader["usu_FecDesBloq"].ToString());
                                    double   res       = Math.Ceiling(dtFDBlo.Subtract(dtFActual).TotalMinutes);

                                    if (res > 0)
                                    {
                                        val.EsUsuarioBloqueado = true;
                                        val.ErrorIngreso       = "Cuenta bloqueda. ¿Desea Desbloquear?";
                                    }
                                }
                            }
                        }
                    }
                }
                return(val);
            } catch {
                return(val);
            }
        }
Beispiel #3
0
        /// <summary>
        /// Valida que las credenciales del usuario sean correctas
        /// </summary>
        /// <param name="nomUsr">Cuenta usuario</param>
        /// <param name="Pswd">Contraseña Encriptada</param>
        /// <returns></returns>
        public ValidaIngresoBE ValidaUsuario(string nomUsr, string Pswd)
        {
            ValidaIngresoBE val      = new ValidaIngresoBE();
            bool            valida   = false;
            string          pssEncr  = string.Empty;
            int             intentos = int.Parse(ConfigurationManager.AppSettings["NumInten"].ToString());
            int             minutos  = int.Parse(ConfigurationManager.AppSettings["MinBloqueo"].ToString());

            try {
                using (SqlConnection conn = new SqlConnection(RecuperarCadenaDeConexion())) {
                    conn.Open();
                    using (SqlCommand cmd = new SqlCommand(CSTR_SP_USUARIOS_DATOSVALIDACION, conn)) {
                        cmd.Parameters.AddWithValue("@Usuario", nomUsr);

                        cmd.CommandType = CommandType.StoredProcedure;
                        using (SqlDataReader reader = cmd.ExecuteReader()) {
                            if (reader.Read())
                            {
                                pssEncr = reader["USU_Contrasenia"].ToString();
                            }
                        }
                    }

                    if (!pssEncr.Equals(string.Empty))
                    {
                        EncriptadorDA enc           = new EncriptadorDA();
                        string        clvRecibida   = enc.DesencriptarTexto(Pswd);
                        string        clvAlmacenada = enc.DesencriptarTexto(pssEncr);

                        if (!clvRecibida.Equals(string.Empty))
                        {
                            valida = clvRecibida.Equals(clvAlmacenada);
                        }

                        if (intentos > 0)
                        {
                            using (SqlCommand cmd = new SqlCommand(CSTR_SP_BLOQUEODESBLOQUEO, conn)) {
                                cmd.Parameters.AddWithValue("@Usuario", nomUsr);
                                cmd.Parameters.AddWithValue("@minutos", minutos);
                                cmd.Parameters.AddWithValue("@intentos", intentos);

                                if (valida)
                                {
                                    valida = !((ValidaIngresoBE)ObtienBloqueoUsuario(nomUsr)).EsUsuarioBloqueado;
                                }

                                cmd.Parameters.Add("@bloquea", SqlDbType.Bit).Value = !valida;

                                cmd.CommandType = CommandType.StoredProcedure;

                                if (valida)
                                {
                                    cmd.ExecuteNonQuery();
                                }
                                else
                                {
                                    using (SqlDataReader reader = cmd.ExecuteReader()) {
                                        if (reader.Read())
                                        {
                                            int numinten = 0;
                                            int.TryParse(reader["usu_NumInten"].ToString(), out numinten);
                                            if (reader["usu_FecBloqueo"] != System.DBNull.Value)
                                            {
                                                DateTime dtFActual = DateTime.Parse(reader["FECACTUAL"].ToString());
                                                DateTime dtFDBlo   = DateTime.Parse(reader["usu_FecDesBloq"].ToString());

                                                val.EsUsuarioBloqueado = true;
                                                double res = Math.Ceiling(dtFDBlo.Subtract(dtFActual).TotalMinutes);
                                                val.ErrorIngreso = "La cuenta se encuentra bloqueda, intentelo de nuevo en " + res +
                                                                   (res > 1 ? " minutos." : " minuto.");
                                            }
                                            else
                                            {
                                                val.ErrorIngreso = (intentos - numinten) > 0 ? "Usuario y/o contraseña invalidos. la cuenta será bloqueada al intento " +
                                                                   intentos.ToString() + ". Intento " + numinten.ToString() + " de " + intentos.ToString() :
                                                                   "Usuario y/o contraseña invalidos. la cuenta esta bloqueada.";
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    if (valida)
                    {
                        val.EsIngresoValido = true;
                        val.ErrorIngreso    = string.Empty;
                    }
                }

                return(val);
            } catch {
                return(val);
            }
        }
Beispiel #4
0
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            try {
                UsuariosBE Usuario = BaseWinBP.UsuarioLogueado;
                errorProvider1.SetError(rtxtUsuario, "");
                errorProvider1.SetError(rtxtContrasenia, "");
                errorProvider1.SetError(txtNuevaContra, "");
                string msg = string.Empty;

                if (rtxtUsuario.Text.Trim().Length.Equals(0))
                {
                    msg = "- Ingrese la contraseña anterior" + Environment.NewLine;
                    errorProvider1.SetError(rtxtUsuario, "Ingrese la contraseña anterior");
                }

                if (rtxtContrasenia.Text.Trim().Length.Equals(0))
                {
                    msg += "- Ingrese la nueva contraseña" + Environment.NewLine;
                    errorProvider1.SetError(rtxtContrasenia, "Ingrese la nueva contraseña");
                }

                if (txtNuevaContra.Text.Trim().Length.Equals(0))
                {
                    msg += "- Repita la nueva contraseña" + Environment.NewLine;
                    errorProvider1.SetError(rtxtContrasenia, "Repipta la nueva contraseña");
                }

                if (!rtxtContrasenia.Text.Trim().Equals(txtNuevaContra.Text.Trim()))
                {
                    msg += "- Las contraseñas no coinciden";
                    errorProvider1.SetError(rtxtContrasenia, "Las contraseñas no coinciden");
                }


                if (msg.Length.Equals(0))
                {
                    if (RadMessageBox.Show("Esta acción cambiará la contraseña y cerrará el sistema\nDesea continuar...?", this.Text, MessageBoxButtons.YesNo, RadMessageIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                    {
                        //WCF_Seguridad.SIAC_SeguridadClient wcf = new WCF_Seguridad.SIAC_SeguridadClient();

                        //Se valida primero el usuario
                        ValidaIngresoBE val = wcf.ValidaUsuario(Usuario.Usuario, new EncriptadorBP().EncriptarTexto(rtxtUsuario.Text.Trim()));
                        if (val.EsIngresoValido)
                        {
                            //Se cambia el password y se sale de la aplicación
                            Usuario.Contrasena = new EncriptadorBP().EncriptarTexto(txtNuevaContra.Text.Trim());
                            if (wcf.CambiaContrasenia(Usuario) == 0)
                            {
                                RadMessageBox.Show("Ocurrió un error, la contraseña no puede ser cambiada", this.Text, MessageBoxButtons.OK, RadMessageIcon.Exclamation);
                                this.Close();
                            }
                            else
                            {
                                RadMessageBox.Show("Contraseña cambiada correctamente, ahora el sistema se cerrará", this.Text, MessageBoxButtons.OK, RadMessageIcon.Info);
                                Application.Exit();
                            }
                        }
                        else
                        {
                            RadMessageBox.Show("La contraseña capturada es incorrecta\ncorrija e intente de nuevo", this.Text, MessageBoxButtons.OK, RadMessageIcon.Info);
                        }
                    }
                    else
                    {
                        this.Close();
                    }
                }
                else
                {
                    RadMessageBox.Show("Datos Obligatorios" + Environment.NewLine + msg, this.Text, MessageBoxButtons.OK, RadMessageIcon.Info);
                    this.DialogResult = DialogResult.None;
                }
            } catch (Exception ex) {
                throw ex;
            }
        }