利用MVC自带的过滤器可现实简单的登录校验
在项目目录下创建一个BaseController控制器,让需要验证的控制器继承这个BaseController
需要让BaseController继承Controller ,因为Controller继承了AuthorizeAttribute 类,此类中封装了OnActionExecuting方法,控制器方法执行之前会执行该方法
BaseController:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MyProject.Controllers { public class BaseController:Controller { protected override void OnActionExecuting(ActionExecutingContext filterContext) { //如果想要执行后面的过滤器则需要加上这一句 base.OnActionExecuting(filterContext); //判断服务器有无登录标识 if (filterContext.HttpContext.Session["username"]==null) { //提示用户未登录并跳转 filterContext.HttpContext.Response.Write("<script>alert('请登录!');window.parent.location.href='/Login/Index'</script>"); return; } } } }
同样,这样做只适合网站部署在一台服务器上的情况,如果是多台服务器,则需要根据用户传递的SessionId值去数据库中校验