水水水是啊

using JJQ_Model;
using System;
using System.Web;
using System.Web.Mvc;

namespace JJQ2.filter
{

    public class MyActionFilter : ActionFilterAttribute//继承ActionFilterAttribute类
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            
            try
            {
                //得到ip
                string ips = IPAddress();
                //得到当前时间
                long Now_time = DateTime.Now.ToFileTime();
                //获取cache里的对应ip的上一时刻时间
                long Get_time = Convert.ToInt64(CacheHelper.GetCache(ips));
                //filterContext.HttpContext.Response.Write("66666");
                if ((Now_time - Get_time) < 900000)
                {

                    //ApplicationId;
                    HttpContext.Current.Application.Add("kk","6969");
                    var ss=HttpContext.Current.Application.Get("kk");
                    //实际拦截并跳转到错误友好提示界面
                    //filterContext.Result = new RedirectResult("/errView.html");
                    //未实际拦截就跳转
                    filterContext.HttpContext.Response.Redirect("/errView.html", true);
                    return;
                    //利用控制器跳转___________________失败!!!!!!!!!
                    //errController er = new errController();
                    //er.er();
                    //if (filterContext.HttpContext.Request.IsAjaxRequest())//判断是否ajax
                    //{ 
                    //}
                }
                //设置缓存时间2s
                CacheHelper.SetCache(ips, Now_time,TimeSpan.FromSeconds(2));
                //清楚所有cache缓存
                //CacheHelper.RemoveAllCache();
                //继续向下执行!
                base.OnActionExecuting(filterContext);
            }
            catch (Exception ex)
            {
                string err = ex.ToString();
            }
        }




        public static string IPAddress()
        {
            string userIP;
            HttpRequest Request = HttpContext.Current.Request; // ForumContext.Current.Context.Request;// 如果使用代理,获取真实IP
            userIP = Request.UserHostAddress;
            if (string.IsNullOrEmpty(userIP))
            {
                if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != "")
                    userIP = Request.ServerVariables["REMOTE_ADDR"];
                else
                    userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            }
            return userIP;
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/jsll/p/11598704.html
今日推荐