Exemple #1
0
        public void CierraSesion()
        {
            UsuarioSesionActivaPr sesion = new UsuarioSesionActivaPr();

            sesion.Borrar(General.usuarioActivo);
            sesion = null;
        }
Exemple #2
0
        public bool VerificaUsuario(string unLoginUsuario, string unaClave)
        {
            //General.ObtenerIP();
            bool respuesta = false; int i = 0;

            try
            {
                UsuarioSesionActivaPr sesion = new UsuarioSesionActivaPr();
                usuario objetoUsuario        = UsuarioPr.Instancia.RegistroPorLogin(unLoginUsuario + " " + unaClave);
                if (objetoUsuario == null)
                {
                    throw new Exception("El nombre de usuario o la clave \nintroducidos no son correctos.");
                }
                else
                {
                    if (!objetoUsuario.MenusAsignados && !objetoUsuario.administrador)
                    {
                        throw new Exception("No cuenta con opciones asignadas en el sistema. \nPor favor consulte con el Administrador del mismo.");
                    }
                    if (!objetoUsuario.activo)
                    {
                        throw new Exception("No esta autorizado para ingresar al sistema. \nPor favor consulte con el Administrador del mismo.");
                    }

                    General.usuarioActivo = UsuarioSesionActivaPr.Instancia.Registro(objetoUsuario);

                    if (General.usuarioActivo == null)
                    {
                        i = sesion.Grabar(new usuariosesionactiva()
                        {
                            fkusuario = objetoUsuario, idusuario = objetoUsuario.id, ipsesion = General.ipLocal
                        });
                    }
                    else
                    {
                        if (General.usuarioActivo.fkusuario.multisesion)
                        {
                            i = 1;
                        }
                        else
                        {
                            if (Object.Equals(General.ipLocal, General.usuarioActivo.ipsesion))
                            {
                                if (Object.Equals(General.CifrarClave(unLoginUsuario + " " + unaClave), General.usuarioActivo.fkusuario.clave))
                                {
                                    throw new Exception("Usted ya tiene sesion iniciada en este equipo");
                                }
                                else
                                {
                                    i = sesion.Grabar(new usuariosesionactiva()
                                    {
                                        fkusuario = objetoUsuario
                                    });
                                }
                            }
                            else
                            {
                                throw new Exception("Usted tiene sesion iniciada en el equipo '" + General.usuarioActivo.ipsesion + "', no puede continuar");
                            }
                        }
                    }

                    if (i == 0)
                    {
                        throw new Exception("No se pudo registrar inicio de sesion \nPor favor consulte con el Administrador de sistemas");
                    }
                    else
                    {
                        respuesta = true;
                    }

                    if (General.usuarioActivo.fkusuario.CambioClave)
                    {
                        General.Mensaje("Clave expirada", MessageBoxIcon.Information);
                        if (!CambiarClave(General.usuarioActivo.fkusuario))
                        {
                            CierraSesion();
                            throw new Exception("Cambio de clave cancelado. \nNo puede continuar");
                        }
                    }
                }
            }
            catch (Exception)
            {
                respuesta = false;
                throw;
            }
            return(respuesta);
        }