Exemplo n.º 1
0
 public static void Autenticate(string path)
 {
     MenuAuthorize.ProcessLogin(path);
 }
Exemplo n.º 2
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            base.OnAuthorization(filterContext);

            db = new Context();
            if (WebSecurity.IsAuthenticated)
            {
                var a = db.BaseActions
                        .FirstOrDefault(ac => ac.name == filterContext.ActionDescriptor.ActionName);

                var descriptor = filterContext.ActionDescriptor;
                var controller = descriptor.ControllerDescriptor.ControllerName;
                var action     = descriptor.ActionName;

                bool skipAuthorization = filterContext.ActionDescriptor.IsDefined(typeof(AllowAnonymousAttribute), inherit: true) || filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), inherit: true);

                if (skipAuthorization)
                {
                    return;
                }
                skipAuthorization = !filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(CustomAuthorize), true);
                if (skipAuthorization)
                {
                    return;
                }
                //skipAuthorization = !filterContext.ActionDescriptor.IsDefined(typeof(IsViewAttribute), true);
                //if (skipAuthorization)
                //    return;
                skipAuthorization = filterContext.ActionDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true);

                if (skipAuthorization)
                {
                    return;
                }

                Admin.CustomCode.MenuAuthorize.AccessPermission permission = new MenuAuthorize().HasPermission(descriptor.ActionName, descriptor.ControllerDescriptor.ControllerName);

                if (descriptor.ActionName == "Index" && descriptor.ControllerDescriptor.ControllerName == "BaseHome")
                {
                    permission = MenuAuthorize.AccessPermission.Grant;
                }
                if (permission == MenuAuthorize.AccessPermission.Grant)
                {
                    return;
                }
                else if (permission == MenuAuthorize.AccessPermission.Deny)
                {
                    if (((ReflectedActionDescriptor)filterContext.ActionDescriptor).MethodInfo.ReturnType == typeof(JsonResult))
                    {
                        filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary {
                            { "controller", "BaseUnauthorize" }, { "action", "ErrorUnauthorizedJson" }
                        });
                    }
                    else
                    {
                        filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary {
                            { "controller", "BaseUnauthorize" }, { "action", "ErrorUnauthorized" }
                        });
                    }
                }
                else if (permission == MenuAuthorize.AccessPermission.Expired)
                {
                    filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary {
                        { "controller", "BaseUnauthorize" }, { "action", "Expired" }
                    });
                }
                else if (permission == MenuAuthorize.AccessPermission.Password)
                {
                    filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary {
                        { "controller", "BaseUnauthorize" }, { "action", "needPassword" }, { "actionName", "needPassword" }
                    });
                }
            }
            else
            {
                filterContext.Result = new RedirectToRouteResult(
                    new RouteValueDictionary
                {
                    { "controller", "Account" },
                    { "action", "Login" }
                });
            }
        }