protected void btnGuardar_Click(object sender, DirectEventArgs e)
    {
      try
      {
        Security sec = new Security();
        string mensaje = ErrorText.REGISTRO_INGRESADO;
        co_ca_usuarios usr = new co_ca_usuarios();
        if (hiddenID.Text != "0")
        {
          usr = new bf_ca_usuarios().GetData(hiddenID.Text.ValidaEntero(hiddenID.FieldLabel));
          mensaje = ErrorText.REGISTRO_MODIFICADO;
        }

        usr.id_persona.id = cmbIdPersona.SelectedItem.Value.ValidaEntero(cmbIdPersona.FieldLabel);
        usr.us_esvigente = EstadosRegistros.ConvertirAEstadosRegistros(chk_us_esvigente.Value);
        usr.us_consuser = txtUsConsuser.Text;
        usr.us_password = sec.Encrypt(txtUsClave.Text);

        usr = new bf_ca_usuarios().Save(usr);
        if (usr.id!=0)
        {
          formPanel.Reset();
        }
        Mensajes.Show("Mensaje",mensaje,"CloseIframe();",MessageBox.Icon.INFO);

      }
      catch (Exception)
      {
        Mensajes.Error(ErrorText.ERROR_GUARDAR_REGISTRO);
      }
    }
    protected void btnLogin_Click(object sender, DirectEventArgs e)
    {
      try
      {
        string accesos = new bf_ca_perfilesopciones().GetAccesos(cmbPerfil.SelectedItem.Value.ValidaEntero(cmbPerfil.FieldLabel), 1);
        co_ca_usuarios usuario = new co_ca_usuarios();
        bf_ca_usuarios bfUsuarios = new bf_ca_usuarios();
        usuario.us_consuser = txtUsername.Text.Trim();
        usuario.us_password = txtPassword.Text.Trim();
        usuario = bfUsuarios.Login(usuario);
        if (usuario.id != 0)
        {
          Session["id_usuario"] = usuario.id_usuario;
          FWPConfiguration.set_Cons_User(Session.SessionID, usuario.us_consuser);
          FWPConfiguration.set_ID_User(Session.SessionID, usuario.id_usuario);
          FWPConfiguration.set_Perfil(Session.SessionID, cmbPerfil.SelectedItem.Value.ValidaEntero(cmbPerfil.FieldLabel));
          FWPConfiguration.set_ID_Person(Session.SessionID, usuario.id_persona.id);
          FWPConfiguration.set_Name_Person(Session.SessionID, usuario.id_persona.descripcion);
          FWPConfiguration.set_Accesos(Session.SessionID, accesos);

          co_ca_usuarios us = bfUsuarios.GetData(usuario.id_usuario);
          us.us_ultimoacceso.Fecha = DateTime.Now;
          us.us_intentosfallidos = 0;

          bfUsuarios.Save(us);
          Response.Redirect("Desktop.aspx");

        }
        else
        {
          usuario.us_esvigente= TiposBases.EstadoRegistro.TODOS;
          usuario = new bf_ca_usuarios().GetData(usuario).FirstOrDefault();

          if (usuario != null && usuario.us_cambioPassword == TiposBases.EstadoRegistro.ACT)
          {
            Session["id_usuario"] = usuario.id_usuario;
            FWPConfiguration.set_Cons_User(Session.SessionID, usuario.us_consuser);
            FWPConfiguration.set_ID_User(Session.SessionID, usuario.id_usuario);
            FWPConfiguration.set_Perfil(Session.SessionID, cmbPerfil.SelectedItem.Value.ValidaEntero(cmbPerfil.FieldLabel));
            FWPConfiguration.set_ID_Person(Session.SessionID, usuario.id_persona.id);
            FWPConfiguration.set_Name_Person(Session.SessionID, usuario.id_persona.descripcion);
            FWPConfiguration.set_Accesos(Session.SessionID, accesos);
            Mensajes.Show("Mensaje", "La clave ingresada es una Clave Temporal, debe ingresar una nueva Clave",
              "window.location.href='CambiarContrasena.aspx'", MessageBox.Icon.INFO);
          }
          else
          {
            Mensajes.Error(ErrorText.LOGUEO_INCORRECTO);
            //veo si ingreso bien el usuario para asi contar los intentos fallidos 
            var user = bfUsuarios.GetData(new co_ca_usuarios {us_consuser = txtUsername.Text});
            if (user.Any())
            {
              var coCaUsuarios = user.FirstOrDefault();
              if (coCaUsuarios != null)
              {
                coCaUsuarios.us_intentosfallidos = coCaUsuarios.us_intentosfallidos + 1;
                if (coCaUsuarios.us_intentosfallidos >= Constantes.INTENTOS_FALLIDOS)
                {
                  Mensajes.Error(Constantes.EXCEDIO_INTENTOS_FALLIDOS);
                  coCaUsuarios.us_esvigente = TiposBases.EstadoRegistro.DES;
                }
                bfUsuarios.Save(coCaUsuarios);
                frmLogin.Reset();
              }
            }
          }
        }
      }
      catch (Exception ex)
      {
        Mensajes.Error(ErrorText.LOGUEO + "<br> Excepcion: " + ex.Message);
      }
    }