mvc 继承Controller类,每个控制器都继承它,实现统一验证登录

在WebForm下我们一般会设计个PageBase继承Page,在OnInit方法中实现对基本权限的验证业务,然后所有的页面在继承PageBase直接继承这项基本权验证业务。而在.NET MVC下我们如何再实现这个业务呢? 其实无非也是要设计一个ExtController基类来实现这个业务,而这个ExtController基类的权限验证业务切入点选在哪里合适呢?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace WS_Parking.commClass
{
    public class baseControl : Controller
    {
        public baseControl()
        {

        } 
        protected override void Initialize(RequestContext requestContext)
        {
            base.Initialize(requestContext);
            //这里实现用户信息的相关验证业务
            if (requestContext.HttpContext.Session["user_id"] != null && requestContext.HttpContext.Session["user_name"] != null)
            {
                //string userid = requestContext.HttpContext.Session["user_id"].ToString();
                //string user_CompID = requestContext.HttpContext.Session["user_CompID"].ToString();
                //string user_name = requestContext.HttpContext.Session["user_name"].ToString();
            }
            else
            {
                //非登录用户跳转
                requestContext.HttpContext.Response.Redirect("/login/index");
            }
        }
        /// <summary>
        /// 统一错误日志编写
        /// </summary>
        /// <param name="filterContext"></param>
        protected override void OnException(ExceptionContext filterContext)
        {
            // 错误日志编写    
            string controllerNamer = filterContext.RouteData.Values["controller"].ToString();
            string actionName = filterContext.RouteData.Values["action"].ToString();
            string exception = filterContext.Exception.ToString();
            // 执行基类中的OnException    
            base.OnException(filterContext);
        }
    }
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bingo_BIG

你的鼓励是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值