ASP.NET Mvc 简单的 action全局拦截器(过滤器)

论坛 期权论坛 脚本     
匿名网站用户   2020-12-21 09:35   11   0

ASP.NET Mvc 简单的 action全局拦截器(过滤器)

1.创建一个类 继承:ActionFilterAttribute

publicclassActionFilter: ActionFilterAttribute

{

#region是否登录

publicboolIsLogin { get; set; }

#endregion

#region执行action前执行这个方法

publicoverridevoidOnActionExecuting(ActionExecutingContextfilterContext)

{

varvarget= filterContext. HttpContext.Session["UserInfo"];

if(IsLogin==false)

{

if(varget==null)

{

filterContext.Result = newRedirectResult("/Login/Index");

}

return;

}

}

#endregion

}

在文件夹 App_Start下的 FilterConfig.cs中加上:

publicclassFilterConfig

{

publicstaticvoidRegisterGlobalFilters(GlobalFilterCollectionfilters)

{

filters.Add(newHandleErrorAttribute());

filters.Add(newActionFilter());

}

}

这样一个简单的全局拦截器就完成了

在访问其他页面时一旦Session["UserInfo"]为空跳转到"/Login/Index"登录页

在登录页无需判断否则会一直重复跳转 在Index加上:

[ActionFilter(IsLogin=true)]

          [ActionFilter(IsLogin=true)]
    public ActionResult Index()
    {
      return View();
    }
    [ActionFilter(IsLogin = true)]
    public ActionResult CheckUser()
    {
CheckUser 方法 是判断 账号和密码是否正确的方法也需要不做判断











分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP