コード例 #1
0
ファイル: FormIngreso.cs プロジェクト: radtek/sisfalla
        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;
                }
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: FormIngreso.cs プロジェクト: radtek/sisfalla
        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);
        }