利用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值去数据库中校验
MVC登录校验
原文地址:http://www.cnblogs.com/xiaoliwang/p/7696796.html