Пример #1
0
        /// <summary>
        /// Método encargado de Obtener la Instancia del Perfil Activo, dado un Usuario
        /// </summary>
        /// <param name="id_usuario"></param>
        /// <returns></returns>
        public static PerfilSeguridadUsuario ObtienePerfilActivo(int id_usuario)
        {
            //Declarando Objeto de Retorno
            PerfilSeguridadUsuario psu = new PerfilSeguridadUsuario();

            //Armando Arreglo de Parametros
            object[] param = { 4, 0, 0, id_usuario, true, 0, false, "", "" };

            //Obteniendo Registro del SP
            using (DataSet ds = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoDataSet(_nom_sp, param))
            {
                //Validando que Exista el Registro
                if (TSDK.Datos.Validacion.ValidaOrigenDatos(ds, "Table"))
                {
                    //Iniciando Ciclo
                    foreach (DataRow dr in ds.Tables["Table"].Rows)
                    {
                        //Instanciando Perfil de Usuario
                        psu = new PerfilSeguridadUsuario(Convert.ToInt32(dr["Id"]));
                    }
                }
            }

            //Devolviendo Objeto de Retorno
            return(psu);
        }
Пример #2
0
        /// <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);
        }
Пример #3
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);
        }
Пример #4
0
 /// <summary>
 /// Inicializando contenido de GV
 /// </summary>
 private void inicializaForma()
 {
     //Recupera token
     this._token = Convert.ToString(Request.QueryString["ustk"]);
     //Instanciando
     using (SAT_CL.Seguridad.UsuarioToken objtoken = new SAT_CL.Seguridad.UsuarioToken(this._token))
         using (SAT_CL.Seguridad.Usuario objUsario = new SAT_CL.Seguridad.Usuario(objtoken.id_usuario_registra))
             using (SAT_CL.Seguridad.PerfilSeguridadUsuario objperfilactivo = SAT_CL.Seguridad.PerfilSeguridadUsuario.ObtienePerfilActivo(objUsario.id_usuario))
             {
                 if (objtoken.habilitar && objUsario.habilitar && objperfilactivo.habilitar)
                 {
                     //Cargando lista de reportes de la compañía
                     CapaNegocio.m_capaNegocio.CargaCatalogo(ddlReporte, 198, "- Seleccione un Reporte -", objtoken.id_compania, Convert.ToString(objperfilactivo.id_perfil), 0, "");
                 }
                 else
                 {
                     Error();
                 }
             }
 }
Пример #5
0
        /// <summary>
        /// Inicializamos Valores
        /// </summary>
        private void inicializamosValores(UsuarioSesion objUsuarioSesion)
        {
            //Referenciando al usuario de la sesión actual
            using (Usuario u = (Usuario)Session["usuario"])
            {
                //Nombre de Usuario
                lkbUsuario.Text = u.nombre;
                //Fecha de Inicio de Sesión
                lkbInicioSesion.Text = "Inicio Sesión: " + objUsuarioSesion.fecha_inicio.ToString("dd/MM/yyyy HH:mm");

                //Obteniendo el perfil de seguridad actual del usuario
                SAT_CL.Seguridad.PerfilSeguridadUsuario perfilActivo = SAT_CL.Seguridad.PerfilSeguridadUsuario.ObtienePerfilActivo(u.id_usuario);
                using (SAT_CL.Seguridad.PerfilSeguridad perfil = new PerfilSeguridad(perfilActivo.id_perfil))
                {
                    //Perfil
                    lkbPerfil.Text = string.Format("Perfil: {0}", perfil.descripcion);
                }

                //Instanciamos Compañia de la sesión actual
                using (CompaniaEmisorReceptor objCompania = new CompaniaEmisorReceptor(((UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor))
                {
                    lkbCompania.Text = "Compañía: " + objCompania.nombre_corto;
                }

                //Validamos exista dias de Vigencia (0 = Sin vigencia, es permanente)
                if (u.dias_vigencia > 0)
                {
                    //Si  la vigencia ha caducado
                    if (DateTime.Today.CompareTo(u.fecha_contrasena.Date.AddDays(u.dias_vigencia)) > 0)
                    {
                        //Redireccionamos a pagina Cambio de Contraseña
                        Response.Redirect("~/CambioContrasena.aspx");
                    }
                }
            }
        }
Пример #6
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.Global.Contacto c = new SAT_CL.Global.Contacto((int)Session["id_registro"]))
                {
                    //Valida si el registro existe.
                    if (c.id_contacto > 0)
                    {
                        //Asigna al objeto retorno los datos del usuario que realizo el cambio de estado del registro (Deshabilitó)
                        retorno = c.DeshabilitaContacto(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario);

                        //Validando Operación Exitosa
                        if (retorno.OperacionExitosa)
                        {
                            //Invoca al constructor de la clase y asigna el valor de la variable de session id_registro.
                            using (SAT_CL.Seguridad.Usuario us = new SAT_CL.Seguridad.Usuario(c.id_usuario_sistema))
                            {
                                //Valida si el registro existe.
                                if (us.id_usuario > 0)
                                {
                                    //Asigna al objeto retorno los datos del usuario que realizo el cambio de estado del registro(Deshabilito)
                                    retorno = us.DeshabilitaUsuario(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario);

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

                                                if (retorno.OperacionExitosa)
                                                {
                                                    SAT_CL.Seguridad.PerfilSeguridadUsuario IdPSU = SAT_CL.Seguridad.PerfilSeguridadUsuario.ObtienePerfilActivo(c.id_usuario_sistema);
                                                    //Instanciando Perfil Activo de Perfil Seguridad Usuario
                                                    using (SAT_CL.Seguridad.PerfilSeguridadUsuario psu = new SAT_CL.Seguridad.PerfilSeguridadUsuario(IdPSU.id_perfil_usuario))
                                                    {
                                                        if (psu.id_perfil_usuario > 0)
                                                        {
                                                            retorno = psu.DeshabilitaPerfilSeguridadUsuario(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario);
                                                            if (retorno.OperacionExitosa)
                                                            {
                                                                using (UsuarioToken activo = UsuarioToken.ObtieneTokenActivo(c.id_usuario_sistema, c.id_compania_emisor))
                                                                {
                                                                    retorno = activo.TerminaUsuarioToken(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario);
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                //Valida que la operacion de inserción se realizo correctamente
                if (retorno.OperacionExitosa)
                {
                    //Mostrando Mensaje de Operación
                    ScriptServer.MuestraNotificacion(this, retorno, ScriptServer.PosicionNotificacion.AbajoDerecha);

                    //Completando Transacción
                    trans.Complete();
                }
                else
                {
                    //Mostrando Mensaje de Operación
                    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();
            }
        }
Пример #7
0
        /// <summary>
        /// Eventos Producido al Seleccionar el Perfil de Usuario
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void lnkSeleccionar_Click(object sender, EventArgs e)
        {
            //Validando que Existan Perfiles
            if (gvPerfilesUsuario.DataKeys.Count > 0)
            {
                //Seleccionando Fila
                Controles.SeleccionaFila(gvPerfilesUsuario, sender, "lnk", false);

                //Declarando Objeto de Retorno
                RetornoOperacion result = new RetornoOperacion();

                //Inicializando Bloque Transaccional
                using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
                {
                    //Instanciando Perfil de Usuario
                    using (SAT_CL.Seguridad.PerfilSeguridadUsuario psu = new SAT_CL.Seguridad.PerfilSeguridadUsuario(Convert.ToInt32(gvPerfilesUsuario.SelectedDataKey["IdPerfilUsuario"])))
                    {
                        //Validando que Exista el Perfil
                        if (psu.id_perfil_usuario > 0)
                        {
                            //Instanciando Perfil de Usuario
                            using (SAT_CL.Seguridad.PerfilSeguridadUsuario pActivo = SAT_CL.Seguridad.PerfilSeguridadUsuario.ObtienePerfilActivo(this._id_usuario))
                            {
                                //Validando que Exista un Perfil Activo
                                if (pActivo.id_perfil_usuario > 0)
                                {
                                    //Validando que sean Distintos
                                    if (pActivo.id_perfil_usuario != psu.id_perfil_usuario)
                                    {
                                        //Actualizando Perfil Activo
                                        result = pActivo.EditaPerfilSeguridadUsuario(pActivo.id_perfil, pActivo.id_usuario, false, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario);

                                        //Validando que la Operación fuese Exitosa
                                        if (result.OperacionExitosa)
                                        {
                                            //Actualizando Perfil Actual
                                            result = psu.EditaPerfilSeguridadUsuario(psu.id_perfil, psu.id_usuario, true, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario);
                                        }
                                    }
                                    else
                                    {
                                        //Actualizando Perfil Actual
                                        result = psu.EditaPerfilSeguridadUsuario(psu.id_perfil, psu.id_usuario, true, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario);
                                    }
                                }
                                else
                                {
                                    //Actualizando Perfil Actual
                                    result = psu.EditaPerfilSeguridadUsuario(psu.id_perfil, psu.id_usuario, true, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario);
                                }

                                //Validando que la Operación fuese Exitosa
                                if (result.OperacionExitosa)
                                {
                                    //Instanciando Usuario
                                    using (SAT_CL.Seguridad.Usuario user = (SAT_CL.Seguridad.Usuario)Session["usuario"])
                                    {
                                        //Actualizando Atributos
                                        if (user.ActualizaAtributos())
                                        {
                                            //Actualizando Perfil de Usuario
                                            psu.ActualizaPerfilSeguridadUsuario();

                                            //Instanciando Perfil
                                            using (SAT_CL.Seguridad.PerfilSeguridad ps = new PerfilSeguridad(psu.id_perfil))
                                            {
                                                //Instanciando Perfil de Seguridad
                                                if (ps.id_perfil_seguridad > 0)
                                                {
                                                    //Instanciando Forma
                                                    using (SAT_CL.Seguridad.Forma form = new SAT_CL.Seguridad.Forma(ps.id_forma_inicio))
                                                    {
                                                        //Completando Transacción
                                                        trans.Complete();

                                                        //Inicializando variables de Sesión
                                                        inicializaVariablesSesion(user);

                                                        //Obteniendo Ruta Relativa
                                                        string url = TSDK.Base.Cadena.RutaRelativaAAbsoluta(Page.AppRelativeVirtualPath, form.ruta_relativa);

                                                        //Redireccionando a la Forma Inicio del Perfil
                                                        Response.Redirect(url);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }