局部过滤器

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/11598378.html