Example #1
0
        //public Usuario GestorUsuarios { get; set; } = new Usuario();

        public ResultadoAutenticacion Iniciar(UsuarioBEL usuario)
        {
            ResultadoAutenticacion valido = ResultadoAutenticacion.UsuarioInvalido;

            if (!(usuario == null))
            {
                // *************** Restauracion de Base ************
                if (usuario.Nombre.Equals("admin") && usuario.Clave.Equals("admin"))
                {
                    PermisoSimple p = new PermisoSimple();
                    p.Nombre = "Permiso_Restaurar";
                    usuario.Perfil.Add(p);
                    EstablecerUsuarioActual(usuario);
                    return(ResultadoAutenticacion.UsuarioValido);
                }

                // buscar el usuario por su nombre
                UsuarioBEL usuarioEncontrado = new Usuario().ObtenerUno(usuario);
                if (!(usuarioEncontrado == null))
                {
                    // verificar que el usuario no este bloqueado
                    if (!usuarioEncontrado.Bloqueado)
                    {
                        // encriptar la clave ingresada por el usuario
                        string claveEncriptada = Criptografia.ObtenerInstancia.GetHashMD5(usuario.Clave);
                        // verificar que las contraseñas encriptadas coinciden
                        if (usuarioEncontrado.Clave.Equals(claveEncriptada))
                        {
                            valido = ResultadoAutenticacion.UsuarioValido;
                            // blanquear intentos incorrectos
                            usuarioEncontrado.IntentosIncorrectos = 0;
                            // establecer el usuario logueado actualmente en sesion
                            EstablecerUsuarioActual(usuarioEncontrado);
                            Bitacora.RegistrarEnBitacora("Inicio sesión del usuario: " + usuarioEncontrado.Nombre, TipoEvento.Auditoria);
                        }
                        else
                        {
                            // contraseñas invalidas, incrementar el contado de intentos fallidos
                            usuarioEncontrado.IntentosIncorrectos += 1;
                            Bitacora.RegistrarEnBitacora("Contraseña inválida usuario: " + usuarioEncontrado.Nombre + " Intentos incorrectos: " + usuarioEncontrado.IntentosIncorrectos, TipoEvento.Seguridad);
                            // verificar si los intentos fallidos es mayor o igual a 3
                            if (usuarioEncontrado.IntentosIncorrectos >= 3)
                            {
                                usuarioEncontrado.Bloqueado = true;
                                valido = ResultadoAutenticacion.UsuarioBloqueado;
                                Bitacora.RegistrarEnBitacora("Se bloqueó el usuario: " + usuarioEncontrado.Nombre + " por Intentos incorrectos: " + usuarioEncontrado.IntentosIncorrectos, TipoEvento.Seguridad);
                            }
                        }
                        // guardar los cambios del usuario
                        new Usuario().Modificar(usuarioEncontrado);
                    }
                    else
                    {
                        valido = ResultadoAutenticacion.UsuarioBloqueado;
                        Bitacora.RegistrarEnBitacora("El usuario " + usuarioEncontrado.Nombre + " se encuentra bloqueado", TipoEvento.Seguridad);
                    }
                }
                else
                {
                    Logger.WriteLog("No existe el usuario: " + usuario.Nombre);
                }
            }
            return(valido);
        }
Example #2
0
        protected void btnAceptar_Click(object sender, EventArgs e)
        {
            try
            {
                bool integridad    = false;
                bool integridadBLL = false;

                integridad    = _gestorIntegridad.validar();
                integridadBLL = _gestorIntegridadBLL.validar();

                if ((!integridad || !integridadBLL) & (txtIdUsuario.Text == "adminMaster"))
                {
                    lblLogin.Text = Traductor.Mensaje("ERR100", "es-AR");

                    integridad    = true;
                    integridadBLL = true;
                }

                if (!integridad || !integridadBLL)
                {
                    lblLogin.Text = _gestormensaje.leer_mensaje("ERR101", "es-AR").descripcion;
                }
                else
                {
                    try
                    {
                        BE.Usuario usuario = new BE.Usuario();
                        usuario.idUsuario = txtIdUsuario.Text;
                        usuario.Clave     = txtClave.Text;


                        ResultadoAutenticacion resultado = SesionActualWindows.SesionActual().Iniciar(usuario);

                        switch (resultado)
                        {
                        case ResultadoAutenticacion.UsuarioContingencia:
                            lblLogin.Text = Traductor.Mensaje("ERR102", "es-AR");
                            Page.Response.Redirect("bitacoras.aspx");
                            break;

                        case ResultadoAutenticacion.UsuarioValido:
                            //Si el usuario es válido, recupero la cultura y lo guardo en la sesión. Luego redirecciono a la pagina principal del sistema
                            lblLogin.Text = "";
                            BE.Cultura cultura = new BE.Cultura();

                            //validio si la cultura recuperada es valida, sino por defecto asigno español Argentina
                            if (SesionActualWindows.SesionActual().ObtenerUsuarioActual().Cultura != null)
                            {
                                cultura.idCultura = SesionActualWindows.SesionActual().ObtenerUsuarioActual().Cultura;
                            }
                            else
                            {
                                cultura = _gestorCultura.leer_cultura("es-AR");
                            }

                            DateTime fechaD = Convert.ToDateTime(DateTime.Now.AddDays(-15));
                            _gestorBitacora.bitacora_migrar(fechaD);

                            if (txtIdUsuario.Text == "adminMaster")
                            {
                                Page.Response.Redirect("bitacoras.aspx");
                            }
                            else
                            {
                                Page.Response.Redirect("main.aspx");
                            }
                            break;

                        case ResultadoAutenticacion.UsuarioInvalido:
                            lblLogin.Text = Traductor.Mensaje("ERR103", "es-AR");
                            break;

                        case ResultadoAutenticacion.UsuarioBloqueado:
                            lblLogin.Text = Traductor.Mensaje("ERR104", "es-AR");
                            break;
                        }
                    }
                    catch (Exception)
                    {
                        lblLogin.Text = Traductor.Mensaje("ERR105", "es-AR");
                    }
                }
            }

            catch (Exception)
            {
                if (txtIdUsuario.Text == "adminMaster" && txtClave.Text == "Init753951!")
                {
                    GestorPermiso _gestorPermiso = new GestorPermiso();
                    BE.Usuario    usuario        = new BE.Usuario();
                    usuario.idUsuario = txtIdUsuario.Text;
                    usuario.Clave     = txtClave.Text;
                    usuario.Cultura   = new System.Globalization.CultureInfo("es-AR");

                    BE.PermisoFiltro permiso = new BE.PermisoFiltro();
                    permiso.Nombre = "ADM MASTER";
                    usuario.Perfil = _gestorPermiso.leer_UnPermiso(permiso);


                    ResultadoAutenticacion resultado = SesionActualWindows.SesionActual().IniciarContingencia(usuario);

                    Page.Response.Redirect("bitacoras.aspx");
                }
                else
                {
                    lblLogin.Text = "ERROR BD - Contacte al administrador del sistema";
                }
            }
        }