private void btAceptar_Click(object sender, EventArgs e) { try { // Validar cuadros de texto. if (string.IsNullOrEmpty(this.tbUsuario.Text)) { this.lbMensaje.Text = "Ingresar su Usuario."; this.tbUsuario.Focus(); } else if (string.IsNullOrEmpty(this.tbContrasena.Text)) { this.lbMensaje.Text = "Ingresar su Contraseña."; this.tbContrasena.Focus(); } else { DataAccess.DA da = new DataAccess.DA(); DataAccess.LoginUsuario lu = da.Login(this.tbUsuario.Text, this.tbContrasena.Text); if (lu.IsLogin) { this.Hide(); a02_SelPlanta frmObj = new a02_SelPlanta(lu); frmObj.Show(); } else { this.lbMensaje.Text = lu.Mensaje; this.tbUsuario.Text = ""; this.tbContrasena.Text = ""; this.tbUsuario.Focus(); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); } }
private LoginUsuario ObtenerUsuario(MSSQLce dbObj, string sLogin) { StringBuilder queryString = null; SqlCeParameter[] pars = null; DataTable dtObj = null; LoginUsuario ResObj = new LoginUsuario(); // try { #region Query queryString = new StringBuilder(); queryString.Append("select u.cod_usuario as CodUsuario, "); queryString.Append(" u.login as Login, "); queryString.Append(" u.password as Password, "); queryString.Append(" u.cod_empleado as CodEmpleado, "); queryString.Append(" (e.nombre + ' ' + e.ap_paterno + ' ' + e.ap_materno) as NomEmpleado, "); queryString.Append(" u.cod_rol as CodRol, "); queryString.Append(" r.des_rol as DesRol, "); queryString.Append(" e.cod_puesto as CodPuesto, "); queryString.Append(" p.des_puesto as DesPuesto, "); queryString.Append(" u.bloqueado as Bloqueado, "); queryString.Append(" u.fecha_vig_password as FechaVigPassword "); queryString.Append("from usuario u, "); queryString.Append(" empleado e, "); queryString.Append(" rol r, "); queryString.Append(" puesto p "); queryString.Append("where u.cod_empleado = e.cod_empleado "); queryString.Append(" and u.cod_rol = r.cod_rol "); queryString.Append(" and e.cod_puesto = p.cod_puesto "); queryString.Append(" and u.fecha_baja is null "); queryString.Append(" and u.login = @Login;"); #endregion Query #region Parameters pars = new SqlCeParameter[1]; pars[0] = new SqlCeParameter("@Login", SqlDbType.NVarChar, 10); pars[0].Value = sLogin; #endregion Parameters #region Query Execution dtObj = dbObj.ObtenerRegistros(false, queryString.ToString(), pars); #endregion Query Execution #region Mapear el DataTable en un objeto if (dtObj.Rows.Count > 0) { ResObj.CodUsuario = Convert.ToInt32(dtObj.Rows[0]["CodUsuario"]); ResObj.Login = Convert.ToString(dtObj.Rows[0]["Login"]); ResObj.Password = Convert.ToString(dtObj.Rows[0]["Password"]); ResObj.CodEmpleado = Convert.ToInt32(dtObj.Rows[0]["CodEmpleado"]); ResObj.NomEmpleado = Convert.ToString(dtObj.Rows[0]["NomEmpleado"]); ResObj.CodRol = Convert.ToInt32(dtObj.Rows[0]["CodRol"]); ResObj.DesRol = Convert.ToString(dtObj.Rows[0]["DesRol"]); ResObj.CodPuesto = Convert.ToInt32(dtObj.Rows[0]["CodPuesto"]); ResObj.DesPuesto = Convert.ToString(dtObj.Rows[0]["DesPuesto"]); ResObj.Bloqueado = Convert.ToBoolean(dtObj.Rows[0]["Bloqueado"]); ResObj.FechaVigPassword = Convert.ToDateTime(dtObj.Rows[0]["FechaVigPassword"]); } #endregion Mapear el DataTable en un objeto } catch (Exception ex) { throw new Exception(this.sClassName + ", ObtenerUsuario: " + ex.Message); } return(ResObj); }
public LoginUsuario Login(string sLogin, string sPassword) { MSSQLce dbObj = null; LoginUsuario lu = null; // try { #region Connection Configuration dbObj = new MSSQLce(this.sMSSQLServerCE_ConnectionString); #endregion Connection Configuration dbObj.AbrirConexion(); // Verificar que el usuario existe. lu = this.ObtenerUsuario(dbObj, sLogin); if (lu.CodUsuario == -1) { lu.IsLogin = false; lu.Mensaje = "El usuario no existe. Favor de verificar."; return(lu); } // Verificar si el usuario está bloqueado. if (lu.Bloqueado) { lu.IsLogin = false; lu.Mensaje = "Usuario bloqueado. Favor de comunicarse con el administrador del sistema."; return(lu); } // Obtener los dias para expirar password. TimeSpan ts = lu.FechaVigPassword - DateTime.Today; int iDiasVencimiento = ts.Days; // Verificar si la contraseña ya expiro. if (iDiasVencimiento <= 0) { lu.IsLogin = false; lu.Mensaje = "La contraseña ya expiró. Favor de cambiar contraseña."; return(lu); } // Verificar password. if (lu.Password == sPassword) { // Obtener dias aviso de vigencia de password. int iDiasAvisoVigPass = this.ObtenerDiasAvisoVigPass(dbObj); // Informar los días que faltan para el vencimiento del password. if (iDiasVencimiento <= iDiasAvisoVigPass) { lu.Mensaje = "Faltan " + iDiasVencimiento.ToString() + " día(s) para vencimiento de contraseña. Favor de cambiarla."; } // Reiniciar contador de intentos. this.ReiniciarContadorIntentos(dbObj, lu.CodUsuario); lu.IsLogin = true; return(lu); } else { // Incrementar contador de intentos. this.IncrementarContadorIntentos(dbObj, lu.CodUsuario); // Obtener intentos configurados. int iNumIntentosConfigurados = this.ObtenerNumIntentosConfigurados(dbObj); // Obtener número de intentos que tiene el usuario. int iNumIntentosUsuario = this.ObtenerNumIntentosUsuario(dbObj, lu.CodUsuario); // Bloquear usuario y restablecer el contador de intentos. if (iNumIntentosUsuario == iNumIntentosConfigurados) { this.BloquearUsuario(dbObj, lu.CodUsuario); lu.IsLogin = false; lu.Mensaje = "Usuario bloqueado. Favor de comunicarse con el administrador del sistema."; return(lu); } else { lu.IsLogin = false; lu.Mensaje = "El password es incorrecto. Favor de verificar."; return(lu); } } } catch (Exception ex) { throw new Exception(this.sClassName + ", Login: " + ex.Message); } finally { dbObj.CerrarConexion(); dbObj.Dispose(); } }