Пример #1
0
        public LoginUsuario Login(string sUsuario, string sContrasena)
        {
            LoginUsuario lu     = new LoginUsuario();
            DataTable    dtObj  = null;
            String       metodo = string.Empty;

            try
            {
                if (this.oDA0.EstaServicioDisponible())
                {
                    HHsvc.SCPP_HH proxy = DA.ConfigDataAccess.ObtenerServiceProxy();
                    dtObj = proxy.Login(sUsuario, sContrasena);

                    if (!String.IsNullOrEmpty(Convert.ToString(dtObj.Rows[0]["Mensaje"])))
                    {
                        lu.Mensaje = Convert.ToString(dtObj.Rows[0]["Mensaje"]);
                        lu.IsLogin = false;
                    }
                    else
                    {
                        if (dtObj.Rows.Count > 0)
                        {
                            lu.CodUsuario       = Convert.ToInt32(dtObj.Rows[0]["CodUsuario"]);
                            lu.Login            = Convert.ToString(dtObj.Rows[0]["Login"]);
                            lu.Password         = Convert.ToString(dtObj.Rows[0]["Password"]);
                            lu.CodEmpleado      = Convert.ToInt32(dtObj.Rows[0]["CodEmpleado"]);
                            lu.NomEmpleado      = Convert.ToString(dtObj.Rows[0]["NomEmpleado"]);
                            lu.CodSupervisor    = Convert.ToInt32(dtObj.Rows[0]["CodSupervisor"]);
                            lu.CodRol           = Convert.ToInt32(dtObj.Rows[0]["CodRol"]);
                            lu.DesRol           = Convert.ToString(dtObj.Rows[0]["DesRol"]);
                            lu.CodPuesto        = Convert.ToInt32(dtObj.Rows[0]["CodPuesto"]);
                            lu.DesPuesto        = Convert.ToString(dtObj.Rows[0]["DesPuesto"]);
                            lu.Bloqueado        = Convert.ToBoolean(dtObj.Rows[0]["Bloqueado"]);
                            lu.FechaVigPassword = Convert.ToDateTime(dtObj.Rows[0]["FechaVigPassword"]);
                            lu.CodPlanta        = Convert.ToInt32(dtObj.Rows[0]["CodPlanta"]);
                        }
                        lu.IsLogin = true;
                    }
                    return(lu);
                }
                else
                {
                    // Verificar que el usuario existe.
                    dtObj = this.ObtenerUsuario(sUsuario);
                    if (dtObj.Rows.Count > 0)
                    {
                        lu.CodUsuario       = Convert.ToInt32(dtObj.Rows[0]["CodUsuario"]);
                        lu.Login            = Convert.ToString(dtObj.Rows[0]["Login"]);
                        lu.Password         = (Convert.ToString(dtObj.Rows[0]["Password"]) == string.Empty) ? string.Empty : c00_Common.Decrypt(Convert.ToString(dtObj.Rows[0]["Password"]), "Lamosa06");
                        lu.CodEmpleado      = Convert.ToInt32(dtObj.Rows[0]["CodEmpleado"]);
                        lu.NomEmpleado      = Convert.ToString(dtObj.Rows[0]["NomEmpleado"]);
                        lu.CodSupervisor    = Convert.ToInt32(dtObj.Rows[0]["CodSupervisor"]);
                        lu.CodRol           = Convert.ToInt32(dtObj.Rows[0]["CodRol"]);
                        lu.DesRol           = Convert.ToString(dtObj.Rows[0]["DesRol"]);
                        lu.CodPuesto        = Convert.ToInt32(dtObj.Rows[0]["CodPuesto"]);
                        lu.DesPuesto        = Convert.ToString(dtObj.Rows[0]["DesPuesto"]);
                        lu.Bloqueado        = Convert.ToBoolean(dtObj.Rows[0]["Bloqueado"]);
                        lu.FechaVigPassword = Convert.ToDateTime(dtObj.Rows[0]["FechaVigPassword"]);
                        lu.CodPlanta        = Convert.ToInt32(dtObj.Rows[0]["CodPlanta"]);
                    }

                    if (lu.CodUsuario == -1)
                    {
                        lu.IsLogin = false;
                        lu.Mensaje = "Usuario no existe";
                        return(lu);
                    }

                    // Verificar si el usuario está bloqueado.
                    if (lu.Bloqueado)
                    {
                        lu.IsLogin = false;
                        lu.Mensaje = "Usuario bloqueado";
                        return(lu);
                    }

                    // Obtener los dias para expirar password.
                    TimeSpan ts = lu.FechaVigPassword - DateTime.Today;
                    int      iDiasVencimiento = ts.Days;

                    // Verificar si la contraseña ya expiro.
                    if (iDiasVencimiento <= 0)
                    {
                        lu.IsLogin = false;
                        lu.Mensaje = "Contraseña expiró. Cambiarla";
                        return(lu);
                    }

                    // Verificar password.
                    if (lu.Password == sContrasena)
                    {
                        // Obtener dias aviso de vigencia de password.
                        metodo = "ObtenerDiasAvisoVigPass";
                        dtObj  = this.ObtenerDiasAvisoVigPass();
                        int iDiasAvisoVigPass = Convert.ToInt32(dtObj.Rows[0]["DiasAvisoVigPass"]);

                        // Informar los días que faltan para el vencimiento del password.
                        if (iDiasVencimiento <= iDiasAvisoVigPass)
                        {
                            lu.Mensaje = iDiasVencimiento.ToString() + " día(s) vencimiento contraseña.";
                        }

                        // Reiniciar contador de intentos.
                        metodo = "ReiniciarContadorIntentos(" + lu.CodUsuario.ToString() + ")";
                        this.ReiniciarContadorIntentos(lu.CodUsuario);

                        lu.IsLogin = true;
                        return(lu);
                    }
                    else
                    {
                        /*
                         * // Incrementar contador de intentos.
                         * metodo = "IncrementarContadorIntentos(" + lu.CodUsuario.ToString() + ")";
                         * this.IncrementarContadorIntentos(lu.CodUsuario);
                         *
                         * // Obtener intentos configurados.
                         * metodo = "ObtenerNumIntentosConfigurados";
                         * dtObj = this.ObtenerNumIntentosConfigurados(1);
                         * int iNumIntentosConfigurados = Convert.ToInt32(dtObj.Rows[0]["NumIntentosConfig"]);
                         *
                         * // Obtener número de intentos que tiene el usuario.
                         * metodo = "ObtenerNumIntentosUsuario(" + lu.CodUsuario.ToString() + ")";
                         * dtObj = this.ObtenerNumIntentosUsuario(lu.CodUsuario);
                         * int iNumIntentosUsuario = Convert.ToInt32(dtObj.Rows[0]["NumIntentosUsuario"]);
                         *
                         * // Bloquear usuario y restablecer el contador de intentos.
                         * if (iNumIntentosUsuario == iNumIntentosConfigurados)
                         * {
                         *  metodo = "BloquearUsuario(" + lu.CodUsuario.ToString() + ")";
                         *  this.BloquearUsuario(lu.CodUsuario);
                         *  lu.Mensaje = "Usuario bloqueado.";
                         * }
                         * else
                         * {
                         *  lu.Mensaje = "Contraseña incorrecta.";
                         * }
                         */
                        lu.Mensaje = "Contraseña incorrecta.";

                        lu.IsLogin = false;
                        return(lu);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(this.sClassName + ", Login, " + metodo + ": " + ex.Message);
            }
        }