public override void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext.ActionDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true) ||
                filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true))
            {
                return;
            }

            var user = (SysUser)filterContext.HttpContext.Session["user"];

            if (user == null)
            {
                string code = filterContext.HttpContext.Request["code"];

                if (string.IsNullOrEmpty(code) && isPc)
                {
                    filterContext.Result = new RedirectResult("/Home/Login");
                }
                else
                {
                    var        request         = filterContext.HttpContext.Request;
                    SysUserBLL handle          = new SysUserBLL();
                    int        environmentMode = ConvertHelper.ToInt32(ConfigurationManager.AppSettings["EnvironmentMode"]);
                    string     openID          = ConvertHelper.ToString(request.QueryString["OpenID"]);
                    if (!string.IsNullOrEmpty(openID) && environmentMode == (int)EnvironmentMode.Development) // 开发模式
                    {
                        user = handle.DetailByOpenID(openID);
                    }
                    else
                    {
                        string openId = WeChatAPI.GetOpenID(code);
                        if (string.IsNullOrEmpty(openId))
                        {
                            string toUrl       = FileHelper.GetFilePath("/Home/Index");
                            string url         = @"https://open.weixin.qq.com/connect/oauth2/authorize?appid={1}&redirect_uri={0}&response_type=code&scope=snsapi_userinfo&state=1&connect_redirect=1#wechat_redirect";
                            string redirectUrl = string.Format(url, toUrl, ConfigurationManager.AppSettings["AppKey"]);
                            filterContext.Result = new RedirectResult(redirectUrl);
                        }
                        else
                        {
                            user = handle.DetailByOpenID(openId);
                        }
                    }
                    if (user != null)
                    {
                        if (!string.IsNullOrEmpty(operateCode) && !AuthenHelper.HasAuth(operateCode))
                        {
                            filterContext.Result = new RedirectResult("/Home/NoRole");
                        }
                        else
                        {
                            filterContext.HttpContext.Session["user"] = user;
                            filterContext.HttpContext.Session.Timeout = 30;
                        }
                    }
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(operateCode) && !AuthenHelper.HasAuth(operateCode))
                {
                    filterContext.Result = new RedirectResult("/Home/NoAuth");
                }
                else
                {
                    filterContext.HttpContext.Session["user"] = user;
                    filterContext.HttpContext.Session.Timeout = 30;
                }
                filterContext.HttpContext.Session.Timeout = 30;
            }
        }