public ActionResult Login(LoginVM vm)
        {
            if (vm.Code == string.Empty || vm.Code != (string)MemoryCacheTime.GetCacheValue(ImageCodeHelper.CacheKey + vm.UUId))
            {
                return(View(CreateVM <LoginVM>()));
            }

            var user = vm.DoLogin();

            if (user == null)
            {
                return(View(vm));
            }
            else
            {
                LoginUserInfo = user;
                string url = "";
                if (!string.IsNullOrEmpty(vm.Redirect))
                {
                    url = vm.Redirect;
                }
                else
                {
                    url = "/";
                }
                return(Redirect(HttpUtility.UrlDecode(url)));
            }
        }
        public override async Task OnExcuting(IInvocation invocation)
        {
            string key = GetCacheKey(invocation);

            if (isLocal)
            {
                invocation.ReturnValue = MemoryCacheTime.GetCacheValue(key);
            }
            else
            {
                var cahceVaule = IocContainer.Container.Get <ICache>().StringGet(key);
                if (!cahceVaule.IsNullOrEmpty())
                {
                    invocation.ReturnValue = cahceVaule.ToModel(invocation.MethodInvocationTarget.ReturnType);
                }
            }
            Debug.WriteLine("缓存执行前");
        }