Example #1
0
    /// <summary>
    /// Autentica a un Usuario para ingresar a una aplicación, validando que el número de intentos sea válido.
    /// Realiza las acciones correspondientes de acuerdo al estado del usuario autenticado.
    /// </summary>
    public void Autenticar()
    {
        sm = new SecurityManager();
        var    LoUsuario       = new DS.SAI.Data.ClassUsuario();
        string LsUsuario       = this.txtUsuario.Text.Trim();
        string LsContrasena    = this.txtContrasena.Text.Trim();
        string LsContraseñaENC = FormsAuthentication.HashPasswordForStoringInConfigFile(LsContrasena, "sha1");

        try
        {
            LoUsuario = ValidarAcceso(LsUsuario, LsContraseñaENC);
            if (LoUsuario != null && LoUsuario.Autenticacion)
            {
                HttpCookie LoCookie;
                string     LsCookie = string.Empty;
                string     LsDatos  = SecurityManager.GenerarDatos(LoUsuario);

                var LoTicket = new FormsAuthenticationTicket(1, LsUsuario, DateTime.Now,
                                                             DateTime.Now.AddMinutes(60), false, LsDatos);
                Session.Timeout = 120;
                LsCookie        = FormsAuthentication.Encrypt(LoTicket);
                LoCookie        = new HttpCookie(FormsAuthentication.FormsCookieName, LsCookie);
                Response.Cookies.Add(LoCookie);
                Response.Redirect("~/Index.aspx", false);
            }
        }
        catch (ApplicationException ae)
        {
            Alert.Show(ae.Message, this.Page);
        }
        catch (Exception ex)
        {
            Alert.Show(ex.Message, this.Page);
        }
    }
Example #2
0
    public DS.SAI.Data.ClassUsuario ValidarAcceso(string PsUsuario, string PsPassword)
    {
        DateTime dDate, dLastMod, dExp;
        int      ExpDays, iLogonAttempts;
        Boolean  bLock;
        String   sPass;
        var      loUsuario  = new DS.SAI.Data.ClassUsuario();
        var      acceso     = new SecurityManager();
        var      dtUsuarios = acceso.ValidaUsuario(PsUsuario, PsPassword);

        if (dtUsuarios != null)
        {
            loUsuario.Usuario       = dtUsuarios["fvuser_name"].ToString();
            loUsuario.IdUsuario     = int.Parse(dtUsuarios["fiid_user"].ToString());
            loUsuario.IdArea        = int.Parse(dtUsuarios["fiid_area"].ToString());
            loUsuario.IdPlant       = int.Parse(dtUsuarios["fiid_plant"].ToString());
            loUsuario.IdEmpleado    = int.Parse(dtUsuarios["fiid_employed"].ToString());
            loUsuario.IdRol         = int.Parse(dtUsuarios["fiRol"].ToString());
            loUsuario.Perfil        = dtUsuarios["fcDescription"].ToString();
            loUsuario.Autenticacion = true;

            dDate    = DateTime.Parse(dtUsuarios["fdDate"].ToString());
            dLastMod = DateTime.Parse(dtUsuarios["fdModification_date"].ToString());
            bLock    = Boolean.Parse(dtUsuarios["fbLock"].ToString());
            int.TryParse(dtUsuarios["fiLogonAttempts"].ToString(), out iLogonAttempts);
            sPass = dtUsuarios["fvpassword"].ToString();
            if (sPass == PsPassword)
            {
                if (bLock)
                {
                    loUsuario.Autenticacion = false;
                    Alert.Show("El usuario esta bloqueado, favor de ponerse en contacto con el administrador del sistema", this.Page);
                }
                else if (iLogonAttempts > 0)
                {
                    acceso.LogonAttempts(loUsuario.Usuario, false, 0);
                }
            }
            else
            {
                iLogonAttempts += 1;
                if (iLogonAttempts < 3)
                {
                    acceso.LogonAttempts(loUsuario.Usuario, false, iLogonAttempts);
                    Alert.Show("Usuario o contraseña incorrectos", this.Page);
                }
                else
                {
                    acceso.LogonAttempts(loUsuario.Usuario, true, 3);
                    Alert.Show("El usuario " + PsUsuario + " ha sido bloqueado, favor de ponerse encontacto con el administrador del sistema", this.Page);
                }
            }
        }
        else
        {
            Alert.Show("Usuario o contraseña incorrectos", this.Page);
        }
        return(loUsuario);
    }
Example #3
0
 public object Set_FinishTask(DA.ClassUsuario usuario, string sReponsable, int iTaskExchange)
 {
     try
     {
         if (usuario.IdEmpleado == int.Parse(sReponsable) || usuario.IdRol == 1)
         {
             return(datos.Set_FinishTask(iTaskExchange));
         }
         else
         {
             throw new AccessViolationException();
         }
     }
     catch (AccessViolationException aex)
     {
         throw new AccessViolationException(aex.Message);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }