private void _btnAceptar_Click(object sender, EventArgs e) { string username = TextBoxUsuario.Text.Trim(); string password = TextBoxPassword.Text.Trim(); bool usuarioNoValido = false; ErrorInicioSession error = ErrorInicioSession.SinError; if (ValidateUser(username, password)) { error = Sesion.Instancia.IniciarSesion(username, password); if (error == ErrorInicioSession.SinError) { RegistradorArchLocal.Instancia.NombreArchivo = Sesion.Instancia.EmpresaActual.Sigla; MessageMgr.Instance.SetConexion(Sesion.Instancia.Conexion); this.Hide(); DialogResult = System.Windows.Forms.DialogResult.OK; } else if (error == ErrorInicioSession.UsuarioNoValido || error == ErrorInicioSession.UsuarioNoValidoParaSisFalla) { usuarioNoValido = true; } else { MessageBox.Show(GetMensaje(error)); DialogResult = System.Windows.Forms.DialogResult.Cancel; } } else { usuarioNoValido = true; error = ErrorInicioSession.UsuarioNoValido; } if (usuarioNoValido) { if (error == ErrorInicioSession.UsuarioNoValido) { cndcLabelInfo.Text = "Usuario o contraseña incorrecto...(Intento " + NumIntentos + " de " + MaxIntentos + ")"; } else if (error == ErrorInicioSession.UsuarioNoValidoParaSisFalla) { cndcLabelInfo.Text = "Usuario no válido para SisFalla (Intento " + NumIntentos + " de " + MaxIntentos + ")"; } TextBoxPassword.Text = ""; TextBoxPassword.Focus(); NumIntentos++; if (NumIntentos > MaxIntentos) { MessageBox.Show("Tercer intento fallido, se cerrará la aplicación.");//MessageMgr.Instance.GetMessage("TERCER_INTENTO")); TextBoxUsuario.Enabled = false; TextBoxPassword.Enabled = false; DialogResult = System.Windows.Forms.DialogResult.Cancel; } } }
public ErrorInicioSession IniciarSesion(string login, string pass) { ErrorInicioSession resultado = ErrorInicioSession.SinError; PistaMgr.Instance.RegistradorBD = new DBLogWriter(); _objetosGlobales = new Dictionary <string, object>(); OracleCommand cmd = null; try { _configConexion.Inicializar(login, pass); _conexion = new ConnexionOracleMgr(_configConexion.CadenaConexion); AsegurarDatosInicioSesion(); decimal num = 0; cmd = _conexion.CrearCommand(); cmd.CommandText = "STARTSESSION"; cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.Parameters.Add("RETURN", OracleDbType.Decimal).Direction = System.Data.ParameterDirection.ReturnValue; cmd.ExecuteNonQuery(); num = ((Oracle.DataAccess.Types.OracleDecimal)(cmd.Parameters["RETURN"].Value)).Value; _secLogSesion = (long)num; PistaMgr.Instance.Usuario = login; PistaMgr.Instance.Info("BLL", "Inicio Sesion: SecLogSesion = " + _secLogSesion); _tokenSesion = string.Format("Usuario={0}|Contrasena={1}", login, pass); _sesionIniciada = true; } catch (OracleException ex) { if (ex.Number == 1017 || ex.Number == 1005) { resultado = ErrorInicioSession.UsuarioNoValido; } else if (ex.Number == 28009) { resultado = ErrorInicioSession.UsuarioNoValidoParaSisFalla; } else { resultado = ErrorInicioSession.ErrorConexionBD; } PistaMgr.Instance.Error("DALSisFalla", ex); } catch (Exception ex) { PistaMgr.Instance.Error("DALSisFalla", ex); resultado = ErrorInicioSession.OtroError; } finally { _conexion.DisposeCommand(cmd); } return(resultado); }
private string GetMensaje(ErrorInicioSession error) { string resultado = string.Empty; switch (error) { case ErrorInicioSession.UsuarioNoValido: resultado = MessageMgr.Instance.GetMessage("US_CONTRASENA_INVALIDOS"); break; case ErrorInicioSession.ErrorConexionBD: resultado = "Error de conexión a Base de Datos"; //MessageMgr.Instance.GetMessage("ERROR_CON_BD"); break; case ErrorInicioSession.OtroError: resultado = MessageMgr.Instance.GetMessage("ERROR_INICIO_SESION"); break; } return(resultado); }