asp.net mvc中的用户登录验证过滤器

 在WEB项目中建立 类:

     public class LoginFilter : ActionFilterAttribute

 

    {

 

        public override void OnActionExecuting(ActionExecutingContext filterContext)

 

        {

 

            //HttpContext.Current.Response.Write("OnActionExecuting:正要准备执行Action的时候但还未执行时执行<br />");

 

            if (HttpContext.Current.Session"admin" == null)

 

            {

 

                //HttpContext.Current.Response.Write("js代码");
                //HttpContext.Current.Response.End();
                //return;

                var context = new ContentResult();
                context.Content = "<script>alert('请重新登录!');location.href='/Login/Index'</script>";

                filterContext.Result = context;

 

 

 

            }

 

        }

 

 

 

        public override void OnActionExecuted(ActionExecutedContext filterContext)

 

        {

 

            //HttpContext.Current.Response.Write("OnActionExecuted:Action执行时但还未返回结果时执行<br />");

 

        }

 

 

 

        public override void OnResultExecuting(ResultExecutingContext filterContext)

 

        {

 

            // HttpContext.Current.Response.Write("OnResultExecuting:OnResultExecuting也和OnActionExecuted一样,但前者是在后者执行完后才执行<br />");

 

        }

 

 

 

        public override void OnResultExecuted(ResultExecutedContext filterContext)

 

        {

 

            // HttpContext.Current.Response.Write("OnResultExecuted:是Action执行完后将要返回ActionResult的时候执行<br />");

 

        }

 

    }

 

 

 

 

 

使用方法,直接在控制里方法外面写,如:

 

     [LoginFilter]
        public ActionResult Add()
        {
            Model.Userinfo loginuser = base.GetLoginUser();
            Model.Product pro = new Model.Product() { userid = loginuser.id, username = loginuser.username };
            return View(pro);
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值