none
Control de filtros e inicio de views RRS feed

  • Pregunta

  • Hola a todos.

    Tengo un problema. Tengo un filtro dentro de una clase y solo quiero utilizarlo o acceda solo cuando invoque a mi _LayoutAcceso que viene a ser un login. En mi proyecto esta configurado para que inicie mi vista de Bienvenida.

    Entonces, cuando ejecuto o inicio mi proyecto, me lleva de frentre a mi _LayoutAcceso.

    ¿Cómo podría hacer para que cague normal mi bienvenida y luego cuando quiera acceder al login, ahi recien deba acceder al filtro?

    Gracias de antemano por su orientación, dejo mi código:

    En el FilterConfig.cs  agrego lo siguiente:

    public class FilterConfig
        {
            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new HandleErrorAttribute());
                filters.Add(new Filters.VerifySession()); // Agrego mi filtro.
            }
        }

    En mi clase VerifySession.cs agrego mi filtro:

        public class VerifySession : ActionFilterAttribute
        {
            public override void OnActionExecuting(ActionExecutingContext filterContext)
            {         
                var oUser = (USUARIO)HttpContext.Current.Session["user"];
    
                if (oUser == null)
                {
                    if (filterContext.Controller is AccesoController == false)
                    {
                        filterContext.HttpContext.Response.Redirect("~/Acceso/Index");
                    }
                }
                else
                {
                    if (filterContext.Controller is AccesoController == true)
                    {
                        filterContext.HttpContext.Response.Redirect("~/OtroControlador/Inicio");
                    }
                }
    
                base.OnActionExecuting(filterContext);
            }
        }

    Pero en el RouteConfig.cs está configurado para que inicie mi vista de Bienvenida.

        public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Proyecto", action = "Bienvenida", id = UrlParameter.Optional }
                );
            }
        }

    Gracias y saludos.


    jueves, 12 de noviembre de 2020 18:22