继承ActionFilterAttribute的类
using Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace WebCJFZ.App_Start
{
public class LoginFilter : ActionFilterAttribute
{
//定义全局变量
public bool IsCheck { get; set; }
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
//表示是否检查登录
public bool IsCheck { get; set; }
//Action方法执行之前执行此方法
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
if (IsCheck)
{
//校验用户是否已经登录
if (filterContext.HttpContext.Session["loginUser"] == null)
{
//跳转到登陆页
filterContext.HttpContext.Response.Redirect("/UserLogin/Index");
}
else
{
//跳转到首页
filterContext.HttpContext.Response.Redirect("/Home/Index");
}
}
}
}
}
}
创建MVC项目后,会自动生成一个类,在这个类添加标红的代码
using System.Web;
using System.Web.Mvc;
using WebCJFZ.App_Start;
namespace WebCJFZ
{
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new LoginFilter() { IsCheck = true });//把LoginFilter删选器作为全局删选器
// filters.Add(new LoginFilter());//把LoginFilter删选器作为全局删选器
}
}
}
在login的方法上添加这个自定义属性 [LoginFilter(IsCheck = false)]
[LoginFilter(IsCheck = false)]
public ActionResult Login()
{
return View(users);
}