public string ValidarCaducidadContrasena(string idUsuario, string passActual) { ControlUsuarios valUsuarios = new ControlUsuarios(); string passEncript = encryptar(passActual); string respuesta = valUsuarios.ConsultarCaducidad(idUsuario, passEncript); return(respuesta); }
public bool ValidarUsuarios(Usuarios Usu) { ControlUsuarios ctrl = new ControlUsuarios(); bool seguridadHabilitada = ctrl.ConsultaSeguridadHabilitada(); if (seguridadHabilitada) { bool respuestaOn = ValUsuariosSeguridadOn(Usu); return(respuestaOn); } else { bool respuestaOff = ValUsuariosSeguridadOff(Usu); return(respuestaOff); } }
public ActionResult ValidarUsuario(string txtUsuario, string txtContrasena) { string respuesta = ""; #region Login por Base de datos try { //Validar si la seguridad de las contraseñas esta habilitada o no lo esta ControlUsuarios ctrl = new ControlUsuarios(); bool seguridadHabilitada = ctrl.ConsultaSeguridadHabilitada(); UsuariosController busu; busu = new UsuariosController(); decimal idUsuario = Convert.ToDecimal(txtUsuario); Usuarios usu = new Usuarios { IdUsuario = Convert.ToDecimal(txtUsuario), PassCodeUsuario = txtContrasena, NomUsuario = data.Usuarios.Where(c => c.IdUsuario == idUsuario).First().NomUsuario, CliNit = data.Usuarios.Where(c => c.IdUsuario == idUsuario).First().CliNit, //<< JFPancho; 6-Abril-2017; se agrega rol a objeto de Usuarios >> RolId = data.Usuarios.Where(c => c.IdUsuario == idUsuario).First().RolId }; //usu = null; Session["USUARIO_LOGUEADO"] = usu; if (busu.ValidarUsuarios(usu)) { Session["USUARIO"] = usu; Session["NombreUsuario"] = usu.NomUsuario; List <ClientesUsuario> cus = data.ClientesUsuario.Where(c => c.idUsuario == usu.IdUsuario).ToList(); //Valida la cantidad de Capturas realizadas por el Usuario. string _idUsuario = usu.IdUsuario.ToString(); Session["_IDUsuario_"] = usu.IdUsuario.ToString(); string mensajeCapturas = consultaTotalCapturas(_idUsuario); Session["TotalCapturas"] = mensajeCapturas; Clientes clientes = new Clientes(); clientes.CliNit = (decimal)cus.First().idCliente; List <Clientes> Datos = data.Clientes.Where(c => c.CliNit == clientes.CliNit).ToList(); clientes.CliNombre = (string)Datos.First().CliNombre; clientes.Codlabel = (string)Datos.First().Codlabel; clientes.CodParametros = (string)Datos.First().CodParametros; clientes.CliNit = Datos.First().CliNit; Session["CLIENTE"] = clientes; Session["SW_CONCILIACION"] = 0; //LE CARGO EL ROL A ESE USUARIO Session["ROL_USUARIO"] = data.Usuarios.Where(c => c.IdUsuario == usu.IdUsuario).First().RolId; Session["USUARIOS_CLIENTES"] = cus; //SETEO EL PARAMETRO QUE ME DEFINIRA LOS BOTONES QUE SE MUESTRAN EN LA BARRA DEL ALTERNATIFF Parametros param = data.Parametros.First(c => c.codigo == "TOOL_VIS"); Session["TOOL_BAR"] = param.valor; //JFP; Campos para el visor del validacion documental Parametros paramVD = data.Parametros.First(c => c.codigo == "TOOL_VIS_VD"); Session["TOOL_BAR_VD"] = paramVD.valor; //SETEA EL PARAMETRO QUE DEFINE LOS BOTONES QUE SE MUESTRAN EN EL ALTERNATIFF PARA LOS OTROS EL //MODULO DE DACTILOSCOPIA PARA LA CEDULA, LOS CUALES ESTAN PARAMETRIZADOS EN LA TABLA //PARAMETROS| AGREGADO 17/03/2016 WILLIAM CICUA Parametros dactiloscopiaCedula = data.Parametros.First(c => c.codigo == "TOOL_D"); Session["TOOL_DAC"] = dactiloscopiaCedula.valor; //SETEA EL PARAMETRO QUE DEFINE LOS BOTONES QUE SE MUESTRAN EN EL ALTERNATIFF PARA LOS OTROS EL //MODULO DE DACTILOSCOPIA PARA LOS OTROS DOCUMENTOS, LOS CUALES ESTAN PARAMETRIZADOS EN LA TABLA //PARAMETROS| AGREGADO 17/03/2016 WILLIAM CICUA Parametros dactiloscopiaOtros = data.Parametros.First(c => c.codigo == "TOOL_D2"); Session["TOOL_DAC2"] = dactiloscopiaOtros.valor; //VALIDAR SI EL APLICATIVO TIENE HABILITADA LA SEGURIDAD DE USUARIOS if (seguridadHabilitada) { //Validar si la contraseña se encuentra proxima a expirar UsuariosController a = new UsuariosController(); if (a.obtenerTipoLogin() == 1) { string mensaje = busu.ValidarCaducidadContrasena(usu.IdUsuario.ToString(), txtContrasena); if (mensaje.Equals("Caducada")) { throw new Exception("Su contraseña ha Caducado"); } if (mensaje.Contains("cambiarla")) { System.Web.HttpContext.Current.Session["Mensaje"] = mensaje; } } } // SI EL USUARIO ES MOBIL LO REDIRECCIONO A LA PANTALLA EN CUESTION if ((int)Session["ROL_USUARIO"] == 5) { return(base.Redirect("/Mobile/Index")); } //IMPORTANTE USAR EL BASE REDIRECT TAL CUAL PARA QUE ENLACE BIEN LA SESSION //return base.Redirect("/ViewsAspx/Inicio.aspx"); //<< JFPancho;6-abril-2017; se agrega para validar logueo de usuarios //return base.Redirect("/Home/Index"); LogUsuarios x = new LogUsuarios(); if (x.ValidaSesion(((Usuarios)Session["USUARIO_LOGUEADO"]).IdUsuario)) { Session["USUARIO_LOGUEADO"] = null; respuesta = "El usuario ya se encuentra logueado en otro equipo."; } else { x.ActualizaSesion(((Usuarios)Session["USUARIO_LOGUEADO"]).IdUsuario); return(base.Redirect("/Home/Index")); } // JFPancho -->> } else { //Modifica: JFPancho; mayo/2016; se agrega msn de error int usu_activo = Convert.ToInt32(System.Web.HttpContext.Current.Session["activo"].ToString()); if (usu_activo == 0) { respuesta = "El usuario no se encuentra activo"; } else { respuesta = "El usuario o contraseña digitados no coinciden"; } } } catch (Exception exception) { LogRepository.registro("Error en SeguridadController metodo ValidarUsuario " + exception.Message + " stack trace " + exception.StackTrace); respuesta = exception.Message; } #endregion ViewData["Respuesta"] = respuesta; return(View("Login")); }
/// <summary> /// Cambia la contraña de ususario /// </summary> public ActionResult CambioContrasena(string passActual, string confPass) { try { ControlUsuarios val = new ControlUsuarios(); Usuarios user = new Usuarios(); //<<JFPancho;6-abril-2017; valida si el usuario logueado tiene accceso al modulo int?idRol = ((Usuarios)Session["USUARIO_LOGUEADO"]).RolId; var result = gd.spValidaAccesoModulo(idRol, "/Usuarios/CambioContrasena").FirstOrDefault(); if (result == 0) { Response.Redirect("../Home/Index"); } //JFPancho >> user.IdUsuario = ((Usuarios)Session["USUARIO_LOGUEADO"]).IdUsuario; //Validar que la contraseña nueva ingresada no exista en los historicos. string passEncript = this.encryptar(confPass); bool resultadoValidacion = val.ConsultarHistoricos(user.IdUsuario.ToString(), passEncript); if (resultadoValidacion) { return(View("ErrorContrasena")); //throw new Exception("La nueva contraseña ingresada fue usada anteriormente."); } string password = gd.Usuarios.Where(x => x.IdUsuario == user.IdUsuario).Select(z => z.PassCodeUsuario).First().ToString(); if (this.encryptar(passActual).Equals(password)) { bool totalHistoricos = val.ConsultarTotalHistoricos(user.IdUsuario.ToString()); if (totalHistoricos) { //Cuando pase de 4 borra el registro mas antiguo y crea uno nuevo val.actualizarHistoricos(user.IdUsuario.ToString(), passEncript); } else { int mesesCaducidad = val.ConsultarMesesCaducidad(); //Cuando el total de registros no supera 4 se debe insertar uno nuevo UsuariosHistorico dataHistorico = new UsuariosHistorico() { idUsuario = Convert.ToDecimal(user.IdUsuario.ToString()), PassCodeUsuario = this.encryptar(confPass), FechaCaducidad = DateTime.Now.AddMonths(mesesCaducidad), Activo = true }; dbo.AddToUsuariosHistorico(dataHistorico); dbo.SaveChanges(); } gd.sp_CambioPassword(int.Parse(user.IdUsuario.ToString()), confPass); } else { return(View("contrasenaerror")); } return(View()); } catch (Exception e) { LogRepository.registro("Error en UsuariosController metodo CambioContrasena " + e.Message + " stack trace " + e.StackTrace); throw; } }
public bool ValUsuariosSeguridadOn(Usuarios Usu) { try { ControlUsuarios db = new ControlUsuarios(); if (System.Web.HttpContext.Current.Session["contador"] == null) { System.Web.HttpContext.Current.Session["contador"] = 0; } bool usuarioBloq = db.consultarUsuarioBloqueado(Usu.IdUsuario.ToString()); if (!usuarioBloq) { bool respuesta = true; if (obtenerTipoLogin() == 1) { respuesta = db.validarUsuario(Usu.IdUsuario.ToString(), Usu.PassCodeUsuario.ToString()); //JFPancho; mayo/2016;se valida que el usuario este activo int rptaAct = Convert.ToInt32(gd.spValidarUsuarioAct(Convert.ToInt32(Usu.IdUsuario), Usu.PassCodeUsuario.ToString()).First()); if (rptaAct == 2) { System.Web.HttpContext.Current.Session["activo"] = 0; respuesta = false; } else { System.Web.HttpContext.Current.Session["activo"] = 1; } } else { string usuarioWS = obtenerUsuarioWS(Usu.IdUsuario); SingleSignOn access = new SingleSignOn(); bool resultado = access.AutenticarUsuario(usuarioWS, Usu.PassCodeUsuario); if (resultado) { respuesta = true; } else { respuesta = false; } } if (respuesta) { System.Web.HttpContext.Current.Session["contador"] = null; return(true); } else { bool verificarUsuario = db.consultarUsuarioExistente(Usu.IdUsuario.ToString()); if (verificarUsuario) { int contador = Convert.ToInt32(System.Web.HttpContext.Current.Session["contador"].ToString()); contador = contador + db.contadorErrores(false); if (contador == 3) { db.bloquearUsuario(Usu.IdUsuario.ToString(), contador); System.Web.HttpContext.Current.Session["contador"] = null; throw new Exception("El usuario: " + Usu.IdUsuario.ToString() + " ha sido bloqueado"); } System.Web.HttpContext.Current.Session["contador"] = contador; } return(false); } } else { System.Web.HttpContext.Current.Session["contador"] = null; throw new Exception("El usuario se encuentra bloqueado"); } } catch (Exception exception) { LogRepository.registro("Error en UsuariosController metodo ValidarUsuarios " + exception.Message); throw exception; } }