MVC登录校验

利用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值去数据库中校验

 

posted @ 2017-10-20 01:22  吃饭睡觉打豆豆o  阅读(218)  评论(0编辑  收藏  举报