Beispiel #1
0
        public static PocInfoSesion ValidarUsuario(ModLogin login)
        {
            login.Password = login.Password.Encrypt();
            var url  = RestConfig.Get("ApiCore", "Auth", "ValidarUsuario");
            var user = RestClient.CoreRequest <PocInfoSesion>(url, login);

            SeguridadDelegate.UsuarioTemporal = user;
            return(user);
        }
Beispiel #2
0
        public ActionResult ValidarUsuario(ModLogin login)
        {
            Session.RemoveAll();
            login.CodSesion     = SecurityProps.SessionCode;
            login.DireccionIpv4 = SecurityProps.Ipv4Address;
            PocInfoSesion user = null;

            try
            {
                user = SeguridadDelegate.ValidarUsuario(login);
            }
            catch (CoreException e)
            {
                if (login.IsEmbedded)
                {
                    e.Validation.Errors.ToList().ForEach(err =>
                    {
                        ModelState.AddModelError("", err.Message);
                    });
                    return(RedirectToAction("Index", "Home"));
                }
                throw e;
            }
            if (user.NotificaVencimiento)
            {
                if (user.FecVencePass.HasValue)
                {
                    var fecVencimiento = user.FecVencePass.Value;
                    var vencimiento    = (fecVencimiento - DateTime.Today).TotalDays;
                    if (vencimiento <= 0)
                    {
                        ViewBag.Vencimiento = "VENCIMIENTO";
                        ViewBag.IsEmbedded  = login.IsEmbedded;
                        var model = new ModCambioContrasena
                        {
                            CodUsuario = user.CodUsuario
                        };
                        if (login.IsEmbedded)
                        {
                            return(View("_LogInRenew", model));
                        }
                        return(PartialView("_LogInRenew", model));
                    }
                    if (login.IsEmbedded)
                    {
                        ViewBag.Vencimiento = vencimiento;
                        return(View("_LogInRenewPrompt"));
                    }
                    return(Json(new
                    {
                        vencimiento = vencimiento
                    }, JsonRequestBehavior.AllowGet));
                }
            }

            if (AppProperties.SECURITY == (int)EnumIdEstado.Activo)
            {
                if (user.OtpActivo)
                {
                    if (login.IsEmbedded)
                    {
                        return(View("_AutenticarOTP"));
                    }
                    return(PartialView("_AutenticarOTP"));
                }
                else if (user.IdEstado == (int)EnumEstadoUsuario.Activo &&
                         user.RequiereOtp && !user.OtpActivo)
                {
                    ViewBag.Action = "validaOTP";
                    var model = SeguridadDelegate.GenerarCodigo(user.CodUsuario);
                    SeguridadDelegate.UsuarioTemporal = user;
                    if (login.IsEmbedded)
                    {
                        return(View("_CrearClaveAut", model));
                    }
                    return(PartialView("_CrearClaveAut", model));
                }
            }
            return(ProcesaRespuestaAuth(false, login.IsEmbedded));
        }