public LoginUsuario Login(string sUsuario, string sContrasena) { LoginUsuario lu = new LoginUsuario(); DataTable dtObj = null; String metodo = string.Empty; try { if (this.oDA0.EstaServicioDisponible()) { HHsvc.SCPP_HH proxy = DA.ConfigDataAccess.ObtenerServiceProxy(); dtObj = proxy.Login(sUsuario, sContrasena); if (!String.IsNullOrEmpty(Convert.ToString(dtObj.Rows[0]["Mensaje"]))) { lu.Mensaje = Convert.ToString(dtObj.Rows[0]["Mensaje"]); lu.IsLogin = false; } else { if (dtObj.Rows.Count > 0) { lu.CodUsuario = Convert.ToInt32(dtObj.Rows[0]["CodUsuario"]); lu.Login = Convert.ToString(dtObj.Rows[0]["Login"]); lu.Password = Convert.ToString(dtObj.Rows[0]["Password"]); lu.CodEmpleado = Convert.ToInt32(dtObj.Rows[0]["CodEmpleado"]); lu.NomEmpleado = Convert.ToString(dtObj.Rows[0]["NomEmpleado"]); lu.CodSupervisor = Convert.ToInt32(dtObj.Rows[0]["CodSupervisor"]); lu.CodRol = Convert.ToInt32(dtObj.Rows[0]["CodRol"]); lu.DesRol = Convert.ToString(dtObj.Rows[0]["DesRol"]); lu.CodPuesto = Convert.ToInt32(dtObj.Rows[0]["CodPuesto"]); lu.DesPuesto = Convert.ToString(dtObj.Rows[0]["DesPuesto"]); lu.Bloqueado = Convert.ToBoolean(dtObj.Rows[0]["Bloqueado"]); lu.FechaVigPassword = Convert.ToDateTime(dtObj.Rows[0]["FechaVigPassword"]); lu.CodPlanta = Convert.ToInt32(dtObj.Rows[0]["CodPlanta"]); } lu.IsLogin = true; } return(lu); } else { // Verificar que el usuario existe. dtObj = this.ObtenerUsuario(sUsuario); if (dtObj.Rows.Count > 0) { lu.CodUsuario = Convert.ToInt32(dtObj.Rows[0]["CodUsuario"]); lu.Login = Convert.ToString(dtObj.Rows[0]["Login"]); lu.Password = (Convert.ToString(dtObj.Rows[0]["Password"]) == string.Empty) ? string.Empty : c00_Common.Decrypt(Convert.ToString(dtObj.Rows[0]["Password"]), "Lamosa06"); lu.CodEmpleado = Convert.ToInt32(dtObj.Rows[0]["CodEmpleado"]); lu.NomEmpleado = Convert.ToString(dtObj.Rows[0]["NomEmpleado"]); lu.CodSupervisor = Convert.ToInt32(dtObj.Rows[0]["CodSupervisor"]); lu.CodRol = Convert.ToInt32(dtObj.Rows[0]["CodRol"]); lu.DesRol = Convert.ToString(dtObj.Rows[0]["DesRol"]); lu.CodPuesto = Convert.ToInt32(dtObj.Rows[0]["CodPuesto"]); lu.DesPuesto = Convert.ToString(dtObj.Rows[0]["DesPuesto"]); lu.Bloqueado = Convert.ToBoolean(dtObj.Rows[0]["Bloqueado"]); lu.FechaVigPassword = Convert.ToDateTime(dtObj.Rows[0]["FechaVigPassword"]); lu.CodPlanta = Convert.ToInt32(dtObj.Rows[0]["CodPlanta"]); } if (lu.CodUsuario == -1) { lu.IsLogin = false; lu.Mensaje = "Usuario no existe"; return(lu); } // Verificar si el usuario está bloqueado. if (lu.Bloqueado) { lu.IsLogin = false; lu.Mensaje = "Usuario bloqueado"; 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 = "Contraseña expiró. Cambiarla"; return(lu); } // Verificar password. if (lu.Password == sContrasena) { // Obtener dias aviso de vigencia de password. metodo = "ObtenerDiasAvisoVigPass"; dtObj = this.ObtenerDiasAvisoVigPass(); int iDiasAvisoVigPass = Convert.ToInt32(dtObj.Rows[0]["DiasAvisoVigPass"]); // Informar los días que faltan para el vencimiento del password. if (iDiasVencimiento <= iDiasAvisoVigPass) { lu.Mensaje = iDiasVencimiento.ToString() + " día(s) vencimiento contraseña."; } // Reiniciar contador de intentos. metodo = "ReiniciarContadorIntentos(" + lu.CodUsuario.ToString() + ")"; this.ReiniciarContadorIntentos(lu.CodUsuario); lu.IsLogin = true; return(lu); } else { /* * // Incrementar contador de intentos. * metodo = "IncrementarContadorIntentos(" + lu.CodUsuario.ToString() + ")"; * this.IncrementarContadorIntentos(lu.CodUsuario); * * // Obtener intentos configurados. * metodo = "ObtenerNumIntentosConfigurados"; * dtObj = this.ObtenerNumIntentosConfigurados(1); * int iNumIntentosConfigurados = Convert.ToInt32(dtObj.Rows[0]["NumIntentosConfig"]); * * // Obtener número de intentos que tiene el usuario. * metodo = "ObtenerNumIntentosUsuario(" + lu.CodUsuario.ToString() + ")"; * dtObj = this.ObtenerNumIntentosUsuario(lu.CodUsuario); * int iNumIntentosUsuario = Convert.ToInt32(dtObj.Rows[0]["NumIntentosUsuario"]); * * // Bloquear usuario y restablecer el contador de intentos. * if (iNumIntentosUsuario == iNumIntentosConfigurados) * { * metodo = "BloquearUsuario(" + lu.CodUsuario.ToString() + ")"; * this.BloquearUsuario(lu.CodUsuario); * lu.Mensaje = "Usuario bloqueado."; * } * else * { * lu.Mensaje = "Contraseña incorrecta."; * } */ lu.Mensaje = "Contraseña incorrecta."; lu.IsLogin = false; return(lu); } } } catch (Exception ex) { throw new Exception(this.sClassName + ", Login, " + metodo + ": " + ex.Message); } }