public void CierraSesion() { UsuarioSesionActivaPr sesion = new UsuarioSesionActivaPr(); sesion.Borrar(General.usuarioActivo); sesion = null; }
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); }