public override async Task OnAuthorizationAsync(AuthorizationFilterContext filterContext)
        {
            string path = filterContext.HttpContext.Request.QueryString.ToString();
            var    list = filterContext.ActionDescriptor.FilterDescriptors.Where(p => ((FilterDescriptor)p).Filter.GetType() == typeof(AllowAnonymousFilter));

            if (list.Count() == 1 || path.ToLower().IndexOf("isdebug") > -1)
            {
                return;
            }
            string token   = filterContext.HttpContext.Request.Headers["token"];
            string userId  = filterContext.HttpContext.Request.Headers["userId"];
            string qudao   = filterContext.HttpContext.Request.Headers["qudao"];
            string version = filterContext.HttpContext.Request.Headers["version"];
            string pkgName = filterContext.HttpContext.Request.Headers["pkgName"];

            if (String.IsNullOrEmpty(token))
            {
                HttpResultModel ret = new HttpResultModel
                {
                    result  = MainErrorModels.THE_TOKEN_VALIDATION_FAILED,
                    message = "Token validation failed."
                };
                //var response = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.OK);
                var content = new ContentResult();
                content.Content      = JsonConvert.SerializeObject(ret);
                content.StatusCode   = 200;
                filterContext.Result = content;

                Log.WriteWarning("CustomActionFilter::OnActionExecuting", "{0} {1} {2} {3} version:{4}", token, userId, qudao, ret.message, version);
            }
            else
            {
                Redis  redis = HelperProvider.GetRedis();
                string guid  = redis.StringGet(String.Format("user_guid_{0}", userId));

                string ctoken = HelperProvider.MD5Encrypt32(String.Format("{0}{1}", userId, guid));

                if (ctoken != token)
                {
                    HttpResultModel ret = new HttpResultModel
                    {
                        result  = MainErrorModels.THE_TOKEN_VALIDATION_FAILED,
                        message = "Token validation failed."
                    };
                    var content = new ContentResult();
                    content.Content      = JsonConvert.SerializeObject(ret);
                    content.StatusCode   = 200;
                    filterContext.Result = content;

                    Log.WriteDebugLog("CustomActionFilter::OnActionExecuting", "{0} {1} {2} {3} version:{4}", token, userId, qudao, ctoken, version);
                }
            }

            //await base.OnAuthorizationAsync(filterContext);
        }