MVC使用Controller代替Filter完成登录验证(Session校验
编程学习 2021-07-04 22:41www.dzhlxh.cn编程入门
这篇文章主要介绍了MVC使用Controller代替Filter完成登录验证即Session校验,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
之前的学习中,在对Session校验完成登录验证时,通常使用Filter来处理,方法类似与前文的错误日志过滤,即新建Filter类继承ActionFilterAttribute类,重写OnActionExecuting方法,之后直接在需要验证的Action前加上Filter标记即可。
1. 新建登陆校验类CheckLoginAttribute
using System.Web.Mvc; namespace PMS.WebApp.Models { public class CheckLoginAttribute:ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); if (filterContext.HttpContext.Session == null || filterContext.HttpContext.Session["user"] == null) { filterContext.HttpContext.Response.Redirect("/User/Login"); } } } }
2. 在需要校验的Action增加标记以完成校验
using System.Web.Mvc; using PMS.IBLL; using PMS.WebApp.Models; namespace PMS.WebApp.Controllers { public class UserController : Controller { // // GET: /User/ //private IUserService _userService; //private IUserService UserService //{ // get { return _userService ?? (_userService = new UserService()); } // set { _userService = value; } /