/// <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); }
/// <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); }
/// <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); }
/// <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(); } } }
/// <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"); } } } }
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(); } }
/// <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); } } } } } } } } } } } }