コード例 #1
0
ファイル: frmLogin.cs プロジェクト: BrenMl/windowsForm
        public frmLogin()
        {
            InitializeComponent();


            _maxIntentos = int.Parse(ConfigurationManager.AppSettings["intentosLogin"].ToString());
            _lnSistema   = new LnSistema(ModUsuario.SessionObjEnDatosConn);
            //USUARIO
            //Almacenamos en el Tag el texto por defecto
            txtUsuario.Tag = "Usuario";
            //Ponemos el texto por defecto
            txtUsuario.Text = txtUsuario.Tag.ToString();

            //Ponemos el froecolor en gris
            txtUsuario.ForeColor = Color.Gray;


            //Suscribimos el textbox a los eventos (Se puede hacer en el diseñador)


            //CONTRASEÑA
            //Almacenamos en el Tag el texto por defecto
            txtPassword.Tag = "***************";
            //Ponemos el texto por defecto
            txtPassword.Text = txtPassword.Tag.ToString();

            //Ponemos el froecolor en gris
            txtPassword.ForeColor = Color.Gray;
        }
コード例 #2
0
        /// <summary>
        ///     ''' Permite habilitrar los modulos a los que el usuario tiene acceo en base a sus permisos en la base de datos
        ///     ''' </summary>
        ///     ''' <remarks></remarks>
        public void HabilitaModulos()
        {
            // Permiso de acceso a modulos.
            try
            {
                DataTable dt;
                LnSistema objLnSistema = new LnSistema(ModUsuario.SessionObjEnDatosConn);
                string    strError     = null;
                dt = objLnSistema.ConsultaPermisosPMM(ModUsuario.SessionIdUsuario, ref strError);

                if (dt != null)
                {
                    BindingSource bind = new BindingSource
                    {
                        DataSource = dt
                    };

                    // Se habilitan los botones de acceso a los modulos
                    btnSistema.Enabled   = bind.Find("IdModulo", ClsEnumeradores.Modulos.Sistema) >= 0;
                    btnCatálogos.Enabled = bind.Find("IdModulo", ClsEnumeradores.Modulos.Catalogos) >= 0;
                    btnVentas.Enabled    = bind.Find("IdModulo", ClsEnumeradores.Modulos.Ventas) >= 0;
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #3
0
        private bool valida()
        {
            if (txtPswActual.Text == "")
            {
                MessageBox.Show("Escriba su contraseña actual", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(false);
            }

            if (txtPwsNueva.Text == "")
            {
                MessageBox.Show("Escriba la nueva contraseña", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(false);
            }

            if (txtPswConfirmacion.Text == "")
            {
                MessageBox.Show("Escriba la confirmacion de la contraseña", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(false);
            }

            if (txtPwsNueva.Text != txtPswConfirmacion.Text)
            {
                MessageBox.Show("La nueva contraseña y su confirmacion deben ser iguales", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(false);
            }

            if (!Regex.IsMatch(txtPwsNueva.Text, @"(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"))
            {
                MessageBox.Show("La contraseña debe : \n\t Contener al menos una letra mayúscula.  \n\t Contener al menos una letra minúscula.  \n\t Contener al menos un número o caracter especial.  \n\t Tener una longitud mínima de 8 caracteres.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(false);
            }

            int       intResult;
            LnSistema objLnSistema = new LnSistema(ModUsuario.SessionObjEnDatosConn);

            intResult = objLnSistema.ValidaHistorialPsw(ModUsuario.SessionIdUsuario, new ClsFunciones().GetMD5Hash(txtPwsNueva.Text));

            if (intResult == 1)
            {
                MessageBox.Show("La contraseña ha sido establecida anteriormente, por favor defina una nueva contraseña", "Contraseña en histórico", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(false);
            }

            return(true);
        }
コード例 #4
0
ファイル: FrmSistema.cs プロジェクト: BrenMl/windowsForm
        public FrmSistema()
        {
            InitializeComponent();

            // **********  Inicialización de objetos  *************
            ObjEnPerfil  = new Sis.PERFILES();
            objEnUsuario = new Sis.USUARIOS();

            ObjFunciones      = new ClsFunciones();
            ObjLnSistema      = new LnSistema(ModUsuario.SessionObjEnDatosConn);
            ObjLnSistemaAdmin = new LnSistema(ModUsuario.SessionObjEnParametrosGrales.UsuarioAdmSeg,
                                              ModUsuario.SessionObjEnParametrosGrales.PswAdmSeg,
                                              ModUsuario.SessionIdUsuario);

            ObjLnfunciones = new LnFunciones(ModUsuario.SessionObjEnDatosConn);

            tvPermisos.ImageList = imgLArbol;
        }
コード例 #5
0
        /// <summary>
        ///     ''' Rutina que registra el acceso a un modulo en la bitacora de sesiones
        ///     ''' </summary>
        ///     ''' <param name="IdModulo">En modulo al cual se accede</param>
        ///     ''' <param name="IdAccionSesion">Accion sobre el modulo (acceso/salida)</param>
        ///     ''' <remarks></remarks>
        public void RegistraSesion(int IdModulo, int IdAccionSesion)
        {
            try
            {
                LnSistema        objLnSistemas    = new LnSistema(ModUsuario.SessionObjEnDatosConn);
                Sis.LOG_SESIONES objenLogSesiones = new Sis.LOG_SESIONES
                {
                    IdModulo       = IdModulo,
                    IdAccionSesion = IdAccionSesion,
                    IdUsuario      = ModUsuario.SessionIdUsuario
                };

                objLnSistemas.ABClogSesiones('A', objenLogSesiones);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #6
0
        private void btnAceptar_Click(System.Object sender, System.EventArgs e)
        {
            if (valida())
            {
                ClsFunciones fn        = new ClsFunciones();
                string       strNvaPsw = fn.GetMD5Hash(txtPwsNueva.Text);


                LnSistema    objlnUsuario = new LnSistema(ModUsuario.SessionObjEnParametrosGrales.UsuarioAdmSeg, ModUsuario.SessionObjEnParametrosGrales.PswAdmSeg, ModUsuario.SessionIdUsuario);
                Sis.USUARIOS objenUsuario = new Sis.USUARIOS
                {
                    IdUsuario        = ModUsuario.SessionIdUsuario,
                    CambioContrasena = "0",
                    Password         = strNvaPsw,
                    UsuarioAD        = false
                };

                try
                {
                    objlnUsuario.ABCUsuarios('D', objenUsuario);

                    MessageBox.Show("La contraseña ha sido cambiada correctamente", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    ModUsuario.SessionPassword = strNvaPsw;
                    ModUsuario.SessionObjEnDatosConn.Password = strNvaPsw;
                    CambioPassword = true;

                    Dispose();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                txtPwsNueva.Text        = "";
                txtPswConfirmacion.Text = "";
            }
        }
コード例 #7
0
        /// <summary>
        ///     ''' Genera los menus del formulario dinámicamente
        ///     ''' </summary>
        ///     ''' <param name="Menu">mnuCatalagos</param>
        ///     ''' <param name="BarraBotones">Barra de botones</param>
        ///     ''' <param name="IdUsuario">Identificador del usuario</param>
        ///     ''' <param name="IdModulo">Identificador del módulo</param>
        ///     ''' <remarks></remarks>
        private void GeneraMenu(ref MenuStrip Menu, ref ToolStrip BarraBotones, int IdUsuario, int IdModulo)
        {
            LnSistema objLnSistema = new LnSistema(ModUsuario.SessionObjEnDatosConn);
            DataTable dtMenus;
            DataTable dtAcciones;
            string    Mensaje;

            // Limpiamos tanto el menu como la barra de botones y les indicamos la lista de imagenes que tomará
            Menu.Items.Clear();
            BarraBotones.Items.Clear();
            Menu.ImageList         = imgListBotones;
            BarraBotones.ImageList = imgListBotones;
            // Llenamos el DataTable con los menus que tiene el modulo que se mande por referencia
            Mensaje = "";
            dtMenus = objLnSistema.ConsultaPermisosPMM(IdUsuario, ref Mensaje, IdModulo, 0);
            // Validamos que no haya ocurrido ningun error
            if (Mensaje != "")
            {
                MessageBox.Show(Mensaje, "Error al cargar el menu", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            // Revisamos que haya menus a los que tenga acceso el usuario
            if (dtMenus.Rows.Count == 0)
            {
                MessageBox.Show("No tienes menus habilitados en este módulo", "Modulo denegado", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            // Recorremos los renglones para construir el menu con las opciones
            foreach (DataRow drMenu in dtMenus.Rows)
            {
                ToolStripMenuItem mnuItem = new ToolStripMenuItem();
                // Agregamos el menuitem que trae las opciones al menustrip
                Menu.Items.Add(mnuItem);
                {
                    var withBlock = mnuItem;
                    withBlock.Text = drMenu["Menu"].ToString();
                    withBlock.Name = "mnu" + drMenu["IdMenu"].ToString();
                    // Si trae imagen, se la asignamos al menu
                    if (drMenu["imagen"].ToString() != "")
                    {
                        withBlock.Image = imgListBotones.Images[drMenu["imagen"].ToString()];
                    }
                    // Si trae texto de ayuda lo ponemos
                    if (drMenu["ayuda"].ToString() != "")
                    {
                        withBlock.ToolTipText = drMenu["ayuda"].ToString();
                    }
                    // Obtenemos las acciones, osea los items de cada menu segun los permisos del usuario
                    dtAcciones = objLnSistema.ConsultaPermisosPMM(IdUsuario, ref Mensaje, IdModulo, (int)drMenu["IdMenu"]);
                    // Agregamos las opciones del menu, en base a las acciones del menu
                    foreach (DataRow drMenuItem in dtAcciones.Rows)
                    {
                        ToolStripItem botonStrip         = null /* TODO Change to default(_) if this is not a reference type */;
                        string        mnuItemNombre      = "mnuItem" + drMenuItem["IdAccion"].ToString().Trim();
                        string        mnuBotonItemNombre = "tsboton" + drMenuItem["IdAccion"].ToString().Trim();
                        // Creamos la opcion del menu
                        ToolStripMenuItem mnuItemOpcion = new ToolStripMenuItem(drMenuItem["Accion"].ToString().Trim(), null, new EventHandler(Menu_Click));
                        // Si el valor del campo boton es true, generamos un boton que haga referencia
                        if ((bool)drMenuItem["boton"])
                        {
                            botonStrip = new ToolStripButton(drMenuItem["Accion"].ToString().Trim(), null, new EventHandler(Menu_Click));
                            botonStrip.DisplayStyle = ToolStripItemDisplayStyle.Image;
                            BarraBotones.Items.Add(botonStrip);
                            if ((bool)drMenuItem["separador"])
                            {
                                BarraBotones.Items.Add(new ToolStripSeparator());
                            }
                        }
                        // Si trae un separador esta opcion, lo agregamos
                        if ((bool)drMenuItem["separador"] & (int)drMenuItem["Orden"] != 1)
                        {
                            withBlock.DropDownItems.Add("-");
                        }
                        withBlock.DropDownItems.Add(mnuItemOpcion);
                        {
                            var withBlock1 = mnuItemOpcion;
                            withBlock1.Name = mnuItemNombre;
                            if ((bool)drMenuItem["boton"])
                            {
                                botonStrip.Name = mnuBotonItemNombre;
                            }
                            // Si trae imagen, se la asignamos al menu
                            if (drMenuItem["imagen"].ToString() != "")
                            {
                                withBlock1.Image = imgListBotones.Images[drMenuItem["imagen"].ToString()];
                                // Agregamo la imagen al boton de acceso rapido
                                if ((bool)drMenuItem["boton"])
                                {
                                    botonStrip.Image = imgListBotones.Images[drMenuItem["imagen"].ToString()];
                                }
                            }
                            // Si trae texto de ayuda lo ponemos
                            if (drMenuItem["ayuda"].ToString() != "")
                            {
                                withBlock1.ToolTipText = drMenuItem["ayuda"].ToString();
                                // Agregamo la ayuda al boton de acceso rapido
                                if ((bool)drMenuItem["boton"])
                                {
                                    botonStrip.ToolTipText = drMenuItem["ayuda"].ToString();
                                }
                            }
                            // Verificamos si trae teclas de acceso rapido
                            if (drMenuItem["Caracter"].ToString().Trim() != "")
                            {
                                int CodigoTecla;
                                CodigoTecla  = int.Parse(drMenuItem["Caracter"].ToString());
                                CodigoTecla += (bool)drMenuItem["Ctrl"] ? (int)ClsEnumeradores.TeclasAtajos.Ctrl : 0;
                                CodigoTecla += (bool)drMenuItem["Alt"] ? (int)ClsEnumeradores.TeclasAtajos.Alt : 0;
                                CodigoTecla += (bool)drMenuItem["Shift"] ? (int)ClsEnumeradores.TeclasAtajos.Shift : 0;

                                withBlock1.ShortcutKeys     = (Keys)CodigoTecla;
                                withBlock1.ShowShortcutKeys = true;
                            }
                        }
                    }
                }
            }

            // Una vez creados los menus a partir de la bd, se generá el menu de "ver"
            ToolStripMenuItem tsmnuVer = new ToolStripMenuItem();

            tsmnuBarraHerramientas = new ToolStripMenuItem("&Barra de herramientas", imgListBotones.Images[""], new EventHandler(Menu_Click));
            tsmnuBarraEstado       = new ToolStripMenuItem("B&arra de estado", imgListBotones.Images[""], new EventHandler(Menu_Click));

            tsmnuBarraHerramientas.Checked      = true;
            tsmnuBarraHerramientas.CheckOnClick = true;
            tsmnuBarraHerramientas.CheckState   = CheckState.Checked;
            tsmnuBarraHerramientas.Name         = "mnuItemBarraHerrmaientas";

            tsmnuBarraEstado.Checked      = true;
            tsmnuBarraEstado.CheckOnClick = true;
            tsmnuBarraEstado.CheckState   = CheckState.Checked;
            tsmnuBarraEstado.Name         = "mnuItemBarraEstado";

            tsmnuVer.Text = "&Ver";
            tsmnuVer.Name = "mnuVer";
            // Agregamos las opciones que tendra el menu de ver
            tsmnuVer.DropDown.Items.Add(tsmnuBarraHerramientas);
            tsmnuVer.DropDown.Items.Add(tsmnuBarraEstado);

            Menu.Items.Add(tsmnuVer);
            Menu.MdiWindowListItem = tsmnuVer;

            // Se genera el menu de "ventana"
            var toolmnuVentana = new ToolStripMenuItem();

            {
                toolmnuVentana.Text = "V&entanas";
                toolmnuVentana.Name = "mnuVentanas";
                // Agregamos las opciones que tendra el menu de ventanas
                toolmnuVentana.DropDown.Items.Add("Cascada", imgListBotones.Images["VentanasCascada.png"], new EventHandler(Menu_Click)).Name       = "mnuItemCascada";
                toolmnuVentana.DropDown.Items.Add("Horizontal", imgListBotones.Images["VentanasHorizontal.png"], new EventHandler(Menu_Click)).Name = "mnuItemHorizontal";
                toolmnuVentana.DropDown.Items.Add("Vertical", imgListBotones.Images["VentanasVertical.png"], new EventHandler(Menu_Click)).Name     = "mnuItemVertical";
                toolmnuVentana.DropDown.Items.Add("Cerrar Todo", imgListBotones.Images["Delete3.png"], new EventHandler(Menu_Click)).Name           = "mnuItemCerrarTodo";
            }
            Menu.Items.Add(toolmnuVentana);
            Menu.MdiWindowListItem = toolmnuVentana;

            // Se genera el menu de "salir"
            //Menu.Items.Add("&Salir", imgListBotones.Images["Cancel2.png"], new EventHandler(Menu_Click)).Name = "mnuItemSalir";
        }
コード例 #8
0
ファイル: frmLogin.cs プロジェクト: BrenMl/windowsForm
        /// <summary>

        ///     ''' Evento al mostrarse el formulario

        ///     ''' </summary>

        ///     ''' <param name="sender"></param>

        ///     ''' <param name="e"></param>

        ///     ''' <remarks></remarks>



        private void btnEntrar_Click(System.Object sender, EventArgs e)
        {
            string strMensaje = "";

            try
            {
                if (ValidaDatos())
                {
                    // Analizar el login del usuario para ver si es correcto o no
                    ClsFunciones fn      = new ClsFunciones();
                    string       mensaje = "";

                    // Encriptamos la contraseña a MD5
                    string passwEncr = fn.GetMD5Hash(txtPassword.Text.Trim());

                    // Consultamos información del usuario para saber si existe y que tipo de usuario es (Sistema o Active Directory)
                    Sis.USUARIOS ObjUsuario = new LnSistema(ConfigurationManager.AppSettings["UserLogin"],
                                                            ConfigurationManager.AppSettings["PswLogin"]).ConsultaUsuarioLogin(txtUsuario.Text.Trim());

                    if (strMensaje != "")
                    {
                        throw new Exception(strMensaje);
                    }

                    var ParametrosGrales = new LnSistema(ConfigurationManager.AppSettings["UserLogin"],
                                                         ConfigurationManager.AppSettings["PswLogin"]).ConsultaDatosAdmorseg();

                    ObjLnSistemaAdmin = new LnSistema(ParametrosGrales.UsuarioAdmSeg, ParametrosGrales.PswAdmSeg);

                    // Enviamos los datos a una funcion que valida si la contrasela y usuario son correctos
                    if (ValidaLogin(txtUsuario.Text.Trim(), passwEncr, ref mensaje))
                    {
                        BlCambio = false;

                        if (ModUsuario.SessionCambioContrasena)
                        {
                            MessageBox.Show("Su contraseña ha sido restablecida con anterioridad, por favor cambie su contraseña a una mas segura", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            BlCambio = true;
                        }
                        TimeSpan ts = DateTime.Now - ModUsuario.SessionFechaCambioContrasena;

                        if (ts.TotalDays > ModUsuario.SessionObjEnParametrosGrales.PswVigencia & BlCambio == false)
                        {
                            MessageBox.Show("La Contraseña ha caducado, por favor cambie su contraseña", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            BlCambio = true;
                        }



                        if (BlCambio == true)
                        {
                            frmCambioPsw frmCambiopassword = new frmCambioPsw();
                            frmCambiopassword.ShowDialog();
                            BlCambioPsw = frmCambiopassword.CambioPassword;
                        }

                        Close();
                    }
                    else
                    {
                        MessageBox.Show(mensaje, "Datos Incorrectos", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                        // Revisamos el numero de intentos
                        _intento += 1;
                        if (_intento == _maxIntentos)
                        {
                            // Bloqueo de usuario por intentos fallidos
                            Ent.PARAMETROS_GRALES objParamGrales;
                            Sis.USUARIOS          objenusuario = new Sis.USUARIOS();

                            try
                            {
                                // Se consultan datos de usuario con permisos de bloqueo (usuario administrador de seguridad
                                objParamGrales = new LnSistema(ConfigurationManager.AppSettings["UserLogin"],
                                                               ConfigurationManager.AppSettings["PswLogin"]).ConsultaDatosAdmorseg();

                                // Bloquear usuario
                                LnSistema objlnUsuario = new LnSistema(objParamGrales.UsuarioAdmSeg, objParamGrales.PswAdmSeg);
                                objenusuario.NombreUsuario = txtUsuario.Text;

                                objlnUsuario.BloqueoUsuario(objenusuario);

                                // Notificar acción
                                MessageBox.Show("Usuario bloqueado por intentos fallidos, contacte a su Administrador de sistemas", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                Close();
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                Close();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
            }
        }