public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            int    iUserId         = Convert.ToInt32(User.Claims.FirstOrDefault(x => x.Type == "Id")?.Value);
            string sAreaName       = context.ActionDescriptor.RouteValues["area"].ToString();
            string sControllerName = context.ActionDescriptor.RouteValues["controller"].ToString();
            string sActionName     = context.ActionDescriptor.RouteValues["action"].ToString();
            int    iMenuId         = Convert.ToInt32(context.HttpContext.Request.Query["iPageId"]);
            int    iActionId       = Convert.ToInt32(context.HttpContext.Request.Query["iMethodId"]);

            //个人资料特殊页面权限处理
            if (iMenuId == 1 && (sActionName == "PersonalInfo" || sActionName == "UploadImage") && (iActionId == 1345 || iActionId == 1336))
            {
                await base.OnActionExecutionAsync(context, next);
            }
            if (sAreaName == "Admin" && sActionName == "Index")
            {
                if (string.IsNullOrWhiteSpace(sAreaName) || string.IsNullOrWhiteSpace(sControllerName) || string.IsNullOrWhiteSpace(sActionName) || iMenuId == 0)
                {
                    context.Result = new RedirectResult("/Admin/Home/Error?iErrorCode=1");
                }
                else
                {
                    if (iMenuId > 0 && iActionId == 0 && sAreaName == "Admin" && sActionName == "Index")
                    {
                        if (await _menuService.CheckMenuControllerNameActionNameAsync(sAreaName, sControllerName, sActionName, iMenuId))
                        {
                            //检查用户菜单权限
                            if (await _menuService.CheckUserMenuPowerAsync(iUserId, iMenuId))
                            {
                            }
                            else
                            {
                                context.Result = new RedirectResult("/Admin/Home/Error?iErrorCode=3");
                            }
                        }
                        else
                        {
                            context.Result = new RedirectResult("/Admin/Home/Error?iErrorCode=2");
                        }
                    }
                }
            }
            else
            {
                if (iMenuId > 0 && iActionId > 0)
                {
                    if (await _systemActionService.CheckControllerNameActionNameAsync(sAreaName, sControllerName, sActionName, iActionId))
                    {
                        //检查用户菜单权限
                        if (await _menuService.CheckUserMenuPowerAsync(iUserId, iMenuId))
                        {
                            //检查MenuAction权限
                            MenuAction entityMenuAction = await _menuActionService.CheckMenuActionPowerAsync(iMenuId, iActionId);

                            if (entityMenuAction != null)
                            {
                                if (!entityMenuAction.BisValid.Value)
                                {
                                }
                                else
                                {
                                    //Action无效
                                    context.Result = new RedirectResult("/Admin/Home/Error?iErrorCode=3");
                                }
                            }
                            else
                            {
                                context.Result = new RedirectResult("/Admin/Home/Error?iErrorCode=3");
                            }
                        }
                        else
                        {
                            context.Result = new RedirectResult("/Admin/Home/Error?iErrorCode=3");
                        }
                    }
                    else
                    {
                        context.Result = new RedirectResult("/Admin/Home/Error?iErrorCode=4");
                    }
                }
                else
                {
                    context.Result = new RedirectResult("/Admin/Home/Error?iErrorCode=1");
                }
            }
            await base.OnActionExecutionAsync(context, next);
        }