示例#1
0
文件: Usuario.cs 项目: lulzzz/SAT
        /// <summary>
        /// Inicia Sesión el Usuario
        /// </summary>
        /// <param name="contrasena">Contraseña proporcionada por el Usuario</param>
        /// <returns></returns>
        public RetornoOperacion AutenticaUsuario(string contrasena)
        {
            //Declaramos Resultado
            RetornoOperacion resultado = new RetornoOperacion();

            //Validamos que exista Usuario
            if (this._id_usuario > 0)
            {
                //Validando asignación de un perfil de usuario activo
                using (PerfilSeguridadUsuario perfilActivo = PerfilSeguridadUsuario.ObtienePerfilActivo(this._id_usuario))
                {
                    //Si hay perfil activo
                    if (perfilActivo.id_perfil > 0)
                    {
                        //Obtenemos Contraseña proporcionada
                        contrasena = Encriptacion.CalculaHashCadenaEnBase64(contrasena, Encriptacion.MetodoDigestion.SHA1);

                        //Comparamos contraseña actual con la proporcionada
                        if (this._contrasena == contrasena)
                        {
                            //Actualizamos sesiones que ya han expirado
                            UsuarioSesion.FinalizaSesionesExpiradas(this.id_usuario);

                            /*Validamos el No. de Sesiones Disponibles para el Usuario comparando las que se encuentran actualmente Activas.
                             *                  Sesiones Disponible = 0 sin limite de sesiones */
                            if ((UsuarioSesion.ObtieneNumeroSesionesActivas(this._id_usuario) < this._sesiones_disponibles) || (this.sesiones_disponibles == 0))
                            {
                                //Regresamos Id de Usuario
                                resultado = new RetornoOperacion(this._id_usuario);
                            }
                            else
                            {
                                //Mostrando Mensaje
                                resultado = new RetornoOperacion("Ha alcanzado el número de sesiones permitadas o no ha cerrado correctamente su última sesión.");
                            }
                        }
                        else
                        {
                            //Mostramos Error
                            resultado = new RetornoOperacion("Verifique usuario y/o contraseña.");
                        }
                    }
                    //Si no hay perfil de seguridad activo
                    else
                    {
                        resultado = new RetornoOperacion("No cuenta con un perfil de seguridad activo, contacte con el administrador del sitio.");
                    }
                }
            }
            else
            {
                resultado = new RetornoOperacion("No existe un usuario con los datos proporcionados.");
            }

            //Devolvemos Resultado
            return(resultado);
        }
示例#2
0
        private void bajaContacto()
        {
            //Creación del objeto retorno
            RetornoOperacion retorno = new RetornoOperacion();

            //Inicializando Bloque Transaccional
            using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Invoca al constructor de la clase y asigna el valor de la variable de session id_registro.
                using (SAT_CL.ControlPatio.OperadorPatio c = new SAT_CL.ControlPatio.OperadorPatio((int)Session["id_registro"]))
                {
                    //Valida si el registro existe.
                    if (c.id_operador_patio > 0)
                    {
                        //Asigna al objeto retorno los datos del usuario que realizo el cambio de estado del registro (Deshabilitó)
                        retorno = c.DeshabilitaOperador(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario);

                        //Validando Operación Exitosa
                        if (retorno.OperacionExitosa)
                        {
                            //Instanciando registro de Usuario - Compania
                            using (SAT_CL.Seguridad.UsuarioSesion us = new SAT_CL.Seguridad.UsuarioSesion(c.id_operador_patio))
                            {
                                //Validando que Existe el Registro
                                if (us.id_usuario > 0)
                                {
                                    //Deshabilitando
                                    retorno = c.DeshabilitaOperador(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario);

                                    //Validando Operación Exitosa
                                    if (retorno.OperacionExitosa)
                                    {
                                        //Completando Transacción
                                        trans.Complete();
                                    }

                                    //Mensaje de que la operación de deshabilitar registros se realizo correctamente.
                                    TSDK.ASP.ScriptServer.MuestraNotificacion(this, retorno, ScriptServer.PosicionNotificacion.AbajoDerecha);
                                }
                            }
                        }
                    }
                }
            }

            //Valida si la operación se realizo correctamente.
            if (retorno.OperacionExitosa)
            {
                //Asigna el valor de estado lectura a la variable de session estatus
                Session["estatus"] = Pagina.Estatus.Nuevo;
                //Asigna el valor 0 a la variable de session id_registro
                Session["id_registro"] = 0;
                //invoca al método inicializaForma().
                inicializaForma();
            }
        }
示例#3
0
        /// <summary>
        /// Método encargado de Finalizar las Sesiones de un Usuario, excepto la Actual
        /// </summary>
        /// <returns></returns>
        public RetornoOperacion FinalizaSesionesUsuario()
        {
            //Declaramos Objeto Resultante
            RetornoOperacion result = new RetornoOperacion();

            //Inicializando arreglo de parámetros para consulta
            object[] param = { 6, this._id_usuario_sesion, this._id_usuario, 0, 0, null, null, null, 0, "", "", 0, false, "", "" };

            //Instanciando Usuario Sesión Excepción
            using (DataSet ds = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoDataSet(_nombre_stored_procedure, param))
            {
                //Validando Origen de Datos
                if (Validacion.ValidaOrigenDatos(ds, "Table"))
                {
                    //Inicializando Bloque Transaccional
                    using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
                    {
                        //Recorriendo Ciclo
                        foreach (DataRow dr in ds.Tables["Table"].Rows)
                        {
                            //Instanciando Sesión
                            using (UsuarioSesion us = new UsuarioSesion(Convert.ToInt32(dr["Id"])))
                            {
                                //Validando que exista la Sesión
                                if (us.habilitar)
                                {
                                    //Terminando Sesión
                                    result = us.TerminarSesion();

                                    //Validando si la Operación no es Exitosa
                                    if (!result.OperacionExitosa)
                                    {
                                        //Terminando Ciclo
                                        break;
                                    }
                                }
                                else
                                {
                                    //Instanciando Excepción
                                    result = new RetornoOperacion("No existe la Sesión");
                                }
                            }
                        }

                        //Validando Operación Exitosa
                        if (result.OperacionExitosa)
                        {
                            //Instanciando Positivo el Retorno
                            result = new RetornoOperacion(this._id_usuario_sesion);

                            //Completando Transacción
                            trans.Complete();
                        }
                    }
                }
                else
                {
                    //Instanciando Excepción
                    result = new RetornoOperacion(this._id_usuario_sesion, "No existen Sesiones Activas", true);
                }
            }

            //Devolvemos resultado
            return(result);
        }