public ActionResult LogOut()
        {
            AXFSesionInterfaceClient AXFSesion = new AXFSesionInterfaceClient();

            try
            {
                long resp = AXFSesion.WebEliminarSesion((string)Session["Sesion"], (string)Session["SesionSubCompania"]);
                Session.Clear();
            }
            catch (Exception)
            {
            }

            return(RedirectToAction("Login", "Login"));
        }
Ejemplo n.º 2
0
        // GET: Base
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            AXFSesionInterfaceClient   AXFSesion       = new AXFSesionInterfaceClient();
            AXFUsuarioInterfaceClient  AXFUsuario      = new AXFUsuarioInterfaceClient();
            AXFWebMenuInterfaceClient  AXFWebMenu      = new AXFWebMenuInterfaceClient();
            AXFWebVistaInterfaceClient AXFWebVista     = new AXFWebVistaInterfaceClient();
            List <AXFWebMenuEntity>    ltAXFWebMenuLic = new List <AXFWebMenuEntity>();
            long NumError = 0;

            if (Session["Sesion"] != null)
            {
                if (NumError == 0)
                {
                    List <AXFWebVistaEntity> ltAXFWebVista = AXFWebVista.WebAXFWebVistaSeleccionarXSubCompania((string)Session["SesionSubCompania"], (string)Session["Sesion"], (string)Session["SesionSubCompania"]);
                    List <AXFWebMenuEntity>  ltAXFWebMenu  = AXFWebMenu.WebAXFWebMenuSeleccionarXUsuarioSubCompania((string)Session["Usuario"], (string)Session["SesionSubCompania"], (string)Session["Sesion"], (string)Session["SesionSubCompania"]);

                    foreach (AXFWebVistaEntity etAXFWebVista in ltAXFWebVista)
                    {
                        List <AXFWebMenuEntity> ltWebMenuEntity = ltAXFWebMenu.Where(x => etAXFWebVista.WebControlador.Contains(x.WebControlador)).ToList();

                        if (ltWebMenuEntity.Count() > 0)
                        {
                            //AXFWebMenuEntity etWebMenu = ltWebMenuEntity.First();
                            foreach (var WebMenu in ltWebMenuEntity)
                            {
                                if (!ltAXFWebMenuLic.Contains(WebMenu))
                                {
                                    ltAXFWebMenuLic.Add(WebMenu);
                                }
                            }
                        }
                    }
                    //var lt = ltAXFWebMenuLic.OrderBy(x => x.Orden).ToList();
                    ViewBag.ltAXFWebMenu = new List <AXFWebMenuEntity>();

                    List <AXFUsuarioClaseUsuarioEntity> ltAXFUsuarioClaseUsuario = AXFUsuario.WebAXFUsuarioClaseUsuarioSeleccionarKeyAXFUsuario((string)Session["Usuario"], (string)Session["SesionSubCompania"], (string)Session["Sesion"], (string)Session["SesionSubCompania"]);
                    foreach (AXFUsuarioClaseUsuarioEntity etAXFUsuarioClaseUsuario in ltAXFUsuarioClaseUsuario)
                    {
                        ViewBag.Ruta = "~/Imagenes/Gnome-stock_person_steward2.svg.png";
                        if (etAXFUsuarioClaseUsuario.ClaseUsuario == "Administrador")
                        {
                            ViewBag.Ruta         = "~/Imagenes/Gnome-stock_person_steward2.svg.png";
                            ViewBag.ltAXFWebMenu = ltAXFWebMenuLic.Where(x => x.Texto0 == "SuperAdmin").OrderBy(x => x.Orden).ToList();
                        }
                        else if (etAXFUsuarioClaseUsuario.ClaseUsuario == "Estudiante")
                        {
                            ViewBag.Ruta = "~/Imagenes/Gnome-stock_person_check2.svg.png";
                        }
                        else if (etAXFUsuarioClaseUsuario.ClaseUsuario == "Instructor")
                        {
                            ViewBag.Ruta = "~/Imagenes/Gnome-stock_person_bureau.svg.png";
                        }
                    }

                    base.OnActionExecuting(filterContext);
                }
                else
                {
                    filterContext.Result = new RedirectResult("~/Login/Login");
                }
            }
            else
            {
                filterContext.Result = new RedirectResult("~/Login/Login");
            }
        }
        //[ValidateAntiForgeryToken]
        public async Task <ActionResult> Login(string Usuario, string Password)
        {
            if (!ModelState.IsValid)
            {
                return(View(/*model*/));
            }

            // This doesn't count login failures towards account lockout
            // To enable password failures to trigger account lockout, change to shouldLockout: true
            //var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);

            //switch (result)
            //{
            //    case SignInStatus.Success:
            //        return View(returnUrl);
            //    case SignInStatus.LockedOut:
            //        return View("Lockout");
            //    case SignInStatus.RequiresVerification:
            //        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
            //    case SignInStatus.Failure:
            //    default:
            //        ModelState.AddModelError("", "Invalid login attempt.");
            //        return View(model);
            //}
            AXFUsuarioInterfaceClient AXFUsuario = new AXFUsuarioInterfaceClient();
            AXFSesionInterfaceClient  AXFSesion  = new AXFSesionInterfaceClient();
            string SubCompania = "CIACTAS";
            string SesionResp  = string.Empty;

            if (Usuario != "" && Password != "" && SubCompania != "")
            {
                //Es login normal
                //Verificamos si tiene sesion
                List <AXFSesionEntity> ltAXFSesion = AXFSesion.WebAXFSesionSeleccionarXUsuarioSubCompania(Usuario, SubCompania);
                if (ltAXFSesion.Count > 0)
                {
                    bool UsuarioValido = AXFUsuario.WebAXFUsuarioEsValido(Usuario, Password, SubCompania, ltAXFSesion.First().Sesion, SubCompania);
                    if (UsuarioValido)
                    {
                        AXFSesion.WebEliminarSesion(ltAXFSesion.First().Sesion, SubCompania);
                    }
                }

                SesionResp = AXFSesion.WebAccesoValidoAdmin(Usuario, Password, SubCompania, "CIACTAS PRODUCTO");

                if (SesionResp != "")
                {
                    //Seleccionamos los datos primarios del Usuario para mostrar
                    AXFUsuarioSet           setAXFUsuario = AXFUsuario.WebSeleccionar(Usuario, SubCompania, SesionResp, SubCompania);
                    List <AXFUsuarioEntity> ltAXFUsuario  = setAXFUsuario.ltAXFUsuario;
                    AXFUsuarioEntity        etAXFUsuario  = ltAXFUsuario.First();
                    var BloqueoIngresoCount = setAXFUsuario.ltAXFUsuarioPropiedad.Where(x => x.Propiedad == "BloqueoIngreso" && x.Valor == "Si").Count();
                    var BajaEstudianteCount = setAXFUsuario.ltAXFUsuarioPropiedad.Where(x => x.Propiedad == "BajaEstudiante" && x.Valor == "Si").Count();

                    Session["Nombre"]            = etAXFUsuario.Nombre;
                    Session["Sesion"]            = SesionResp;
                    Session["Usuario"]           = Usuario;
                    Session["SesionSubCompania"] = SubCompania;

                    //Checkeamos si este usuario no esta bloqueado
                    if (BloqueoIngresoCount == 0 && BajaEstudianteCount == 0)
                    {
                        return(RedirectToAction("Index", "Index"));
                    }
                    else
                    {
                        return(RedirectToAction("Login"));
                    }
                }
                else
                {
                    string msgSessionError;
                    List <AXFSesionMensajeEntity> ltAXFSesionError = null;
                    var ltMsgs = new List <string>();

                    ltAXFSesionError = AXFSesion.WebAXFSesionMensajeSeleccionarKeyAXFSesion("Error" + Usuario, SubCompania, "Error" + Usuario, SubCompania);
                    if (ltAXFSesionError.Count > 0)
                    {
                        foreach (AXFSesionMensajeEntity etAXFSesionMensaje in ltAXFSesionError)
                        {
                            msgSessionError = etAXFSesionMensaje.TextoMensaje;
                            ltMsgs.Add(msgSessionError);
                        }
                        AXFSesion.WebLimpiarMensajes("Error" + Usuario, SubCompania);
                        AXFSesion.WebEliminarSesion("Error" + Usuario, SubCompania);
                    }

                    TempData["ltMensajes"] = ltMsgs;


                    return(RedirectToAction("Login"));
                }
            }
            else
            {
                //No hay  login
                return(RedirectToAction("Login"));
            }
        }