コード例 #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
        /// <summary>
        /// Método encargado de Insertar los Perfiles de Seguridad
        /// </summary>
        /// <param name="id_perfil">Perfil de Seguridad</param>
        /// <param name="id_usuario">Usuario</param>
        /// <param name="id_usuario_act">Usuario que Actualiza el Registro</param>
        /// <returns></returns>
        public static RetornoOperacion InsertaPerfilSeguridadUsuario(int id_perfil, int id_usuario, int id_usuario_act)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion result = new RetornoOperacion();

            //Armando Arreglo de Parametros
            object[] param = { 1, 0, id_perfil, id_usuario, true, id_usuario_act, true, "", "" };

            //Inicializando Bloque Transaccional
            using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Instanciando Perfil de Usuario
                using (PerfilSeguridadUsuario psu = PerfilSeguridadUsuario.ObtienePerfilActivo(id_usuario))
                {
                    //Validando que Existe el Perfil
                    if (psu._id_perfil_usuario > 0)
                    {
                        //Editando Perfil
                        result = psu.EditaPerfilSeguridadUsuario(psu.id_perfil, psu.id_usuario, false, id_usuario_act);

                        //Validando que la Operación fuese Exitosa
                        if (result.OperacionExitosa)
                        {
                            //Ejecutando SP
                            result = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nom_sp, param);
                        }
                    }
                    else
                    {
                        //Ejecutando SP
                        result = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nom_sp, param);
                    }

                    //Validando que las Operaciones fueran Exitosas
                    if (result.OperacionExitosa)
                    {
                        //Completando Transacción
                        trans.Complete();
                    }
                }
            }

            //Devolviendo Resultado Obtenido
            return(result);
        }